<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 閱讀(1618) 評論(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)

    隨筆分類

    隨筆檔案

    新聞檔案

    相冊

    常去網站

    搜索

    積分與排名

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产亚洲福利一区二区免费看| 不卡视频免费在线观看| 日本免费网址大全在线观看| 亚洲精品二区国产综合野狼| 二级毛片免费观看全程| 国产免费啪嗒啪嗒视频看看| 国产午夜亚洲精品不卡电影| 国产一区二区三区在线免费观看| 国产偷国产偷亚洲高清在线| 免费欧洲美女牲交视频| xxxxx做受大片在线观看免费| 四虎永久免费观看| 一个人看的免费视频www在线高清动漫| 亚洲?V乱码久久精品蜜桃 | 永久久久免费浮力影院| 亚洲黄色激情视频| 日本特黄特黄刺激大片免费| 国产成人综合久久精品亚洲| 国产亚洲av片在线观看18女人| 十八禁在线观看视频播放免费| 亚洲AV成人无码久久精品老人| **毛片免费观看久久精品| 最新亚洲精品国偷自产在线| 国产在线观看www鲁啊鲁免费| 一级做a爱过程免费视频高清| 久久久久久久综合日本亚洲| 成人免费福利视频| 亚洲第一成年网站视频| 国产91精品一区二区麻豆亚洲| 久久国产乱子伦精品免费一| 亚洲一级毛片中文字幕| 国产一区二区视频免费| 国产偷伦视频免费观看| 亚洲一卡2卡4卡5卡6卡在线99| 免费国产真实迷j在线观看| 国精产品一区一区三区免费视频| 亚洲乱码一二三四区麻豆| 亚洲av午夜精品一区二区三区| 光棍天堂免费手机观看在线观看| 97久久国产亚洲精品超碰热| 亚洲成a人在线看天堂无码|