<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Dust Of Dream

    知識真的是一個圓么?

    JMail 簡單應用-文件傳輸

        日常工作中,常常要將在公司做的東西拷回家,或者要從家里拷東西到公司,但是如果用U盤拷又太麻煩,上web發郵件又有點煩,所以就做了下面的小程序,發送前切版里的內容到指定郵箱來傳遞文件.
        相關技術點:
        1.JMail郵件發送
        2.剪切板提取
       具體代碼實現如下:
    /*
     * Created on 2008-3-5
     
    */
    package org.dueam.ft;

    import java.awt.HeadlessException;
    import java.awt.Toolkit;
    import java.awt.datatransfer.DataFlavor;
    import java.awt.datatransfer.UnsupportedFlavorException;
    import java.io.File;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.List;

    import org.apache.commons.mail.EmailAttachment;
    import org.apache.commons.mail.EmailException;
    import org.apache.commons.mail.MultiPartEmail;

    import sun.misc.BASE64Encoder;

    /**
     * 剪切板內容發生
     * 
    @author <a href="mailto:windonly@gmail.com">Anemone</a>
     * hz,zj,china(2008-3-5)
     
    */
    public class ClipboardFileTransmission {

        
    /**
         * 
    @param args
         * 
    @throws EmailException
         * 
    @throws IOException
         * 
    @throws UnsupportedFlavorException
         * 
    @throws HeadlessException
         
    */
        @SuppressWarnings(
    "unchecked")
        
    public static void main(String[] args) throws EmailException, HeadlessException, UnsupportedFlavorException,
                IOException {
            String context 
    = null;
            List
    <File> fileList = null;
            
    /**
             * 處理前切版
             
    */
            
    for (DataFlavor df : Toolkit.getDefaultToolkit().getSystemClipboard().getAvailableDataFlavors()) {
                
    //如果拷貝的是文本內容
                if (df.equals(DataFlavor.stringFlavor)) {
                    context 
    = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
                }
                
    else if (df.equals(DataFlavor.javaFileListFlavor)) {
                    
    //如果拷貝的是文件則當附件發送
                    fileList = (List<File>) Toolkit.getDefaultToolkit().getSystemClipboard().getData(
                            DataFlavor.javaFileListFlavor);
                }
            }
            
    if ((null == context || "".equals(context)) && (fileList == null || fileList.isEmpty())) {
                
    return;
            }
            
    if (null == context || "".equals(context)) {
                context 
    = "具體資料請看附件";
            }

            MultiPartEmail email 
    = new MultiPartEmail();
            
            
    // 發送服務器
            email.setHostName("smtp.163.com");
            
    //服務器用戶和密碼(如果你自己搞了臺不用驗證的郵件服務器就不用了)
            email.setAuthentication("XXX""XXX");
            
    //接收的郵箱
            email.addTo("XXX@gmail.com""我的資料庫");
            
    //發送服務器的郵件地址,現在很多郵件提供商都有驗證這個同用戶名是否對應,還是老老實實填真實的吧
            email.setFrom("XXX@163.com""Anemone");
            email.setSubject(
    "[日常資料傳遞]-" + getTime());
            
    //文本編碼
            email.setCharset("utf-8");
            email.setMsg(context);
            
    if (null != fileList)
                
    for (File f : fileList) {
                    
    if (f.exists() && f.isFile()) {
                        
    //處理附件
                        EmailAttachment attachment = new EmailAttachment();
                        attachment.setPath(f.getPath());
                        attachment.setDisposition(EmailAttachment.ATTACHMENT);
                        attachment.setDescription(getTime() 
    + "By Anemone");
                        BASE64Encoder enc 
    = new BASE64Encoder();
                        
    //附件中文名問題
                        attachment.setName("=?GBK?B?" + enc.encode(f.getName().getBytes()) + "?=");
                        email.attach(attachment);
                    }
                }

            email.send();

        }

        
    public static String getTime() {
            SimpleDateFormat df 
    = new SimpleDateFormat("yyyy-MM-dd HH:mm");
            
    return df.format(new Date());
        }

    }
    以上代碼在163和gmail之間測試通過過,建議用exe4j打成EXE文件,然后扔到system32目錄下面,這樣只要想發送資料的時候,只要復制下資料,再執行下這個命令就一切都OK了.
    相關類包:下載


    posted on 2008-03-19 10:03 Anemone 閱讀(1600) 評論(5)  編輯  收藏 所屬分類: 牧羊心得

    Feedback

    # re: JMail 簡單應用-文件傳輸 2008-03-19 11:13 BeanSoft

    想法很不錯 支持。只是現在還不知道有幾個人能想起Java里面操作剪貼板。。。  回復  更多評論   

    # re: JMail 簡單應用-文件傳輸 2008-03-19 11:49 stoneshao

    使用gmail+gspace,方便快捷  回復  更多評論   

    # re: JMail 簡單應用-文件傳輸 2008-03-19 14:46 迷失的風

    好像google現在提供的notebook很好用,大家試試。  回復  更多評論   

    # re: JMail 簡單應用-文件傳輸 2008-03-19 15:50 Anemone

    notebook以前我也一直在用,但是插件這個東西在IE或FF里經常不知所謂地掛掉,后面我都直接禁止掉了  回復  更多評論   

    # re: JMail 簡單應用-文件傳輸 2008-08-19 16:19 hjg515

    我建議你使用酷達公司的Qoodaa傳輸精靈。如果你和你朋友都是用企業網帶寬有1M或2M的話,可以考慮用Qoodaa傳輸精靈傳送。舉個例子,如果你們都是電信的2M的ADSL的話,那么上傳一方的最大速度可以達到每秒60KB以上,也就是說你的接收速度也可以是每秒60KB以上,快的時候可以達到100多KB每秒,我試過了,速度的確很快。用一個小時多左右就可以搞定。如果你用其他同類軟件建議你不要試了,那個速度慢的你想自殺。這種軟件在http://www.qoodaa.com.cn可以下載到

      回復  更多評論   


    My Links

    Blog Stats

    News

    常用鏈接

    留言簿(1)

    隨筆分類

    隨筆檔案

    新聞檔案

    相冊

    常去網站

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲国产系列一区二区三区| 亚洲成av人片不卡无码久久| 亚洲天堂男人天堂| 久久免费精品一区二区| 亚洲国产另类久久久精品黑人| 九九久久精品国产免费看小说| 亚洲成av人片不卡无码久久| 一个人看的www在线免费视频| 亚洲精品无码专区久久同性男| 免费无码AV一区二区| 亚洲国产av一区二区三区| 国产精品玖玖美女张开腿让男人桶爽免费看 | 欧洲乱码伦视频免费国产 | 亚洲性天天干天天摸| 在线观看的免费网站无遮挡| 亚洲精品国产免费| 一区二区无码免费视频网站| 亚洲区日韩精品中文字幕| 四虎国产精品免费视| 国产精品成人69XXX免费视频| 亚洲AV午夜成人片| 7723日本高清完整版免费| 亚洲爆乳精品无码一区二区| 亚洲国产精品13p| 免费播放一区二区三区| 亚洲国产视频久久| 亚洲А∨精品天堂在线| 免费国产99久久久香蕉| 亚洲一区二区三区在线| 国产不卡免费视频| 天黑黑影院在线观看视频高清免费| 久久综合亚洲鲁鲁五月天| 日韩a级毛片免费观看| xxxxx做受大片视频免费| 久久久久亚洲精品无码蜜桃 | 亚洲欧洲精品成人久久奇米网| 玖玖在线免费视频| 狠狠色伊人亚洲综合网站色| 亚洲精品国产高清嫩草影院 | 亚洲精品无码人妻无码| 国产亚洲综合色就色|