Dust Of Dream

          知識真的是一個圓么?

          JMail 簡單應(yīng)用-文件傳輸

              日常工作中,常常要將在公司做的東西拷回家,或者要從家里拷東西到公司,但是如果用U盤拷又太麻煩,上web發(fā)郵件又有點煩,所以就做了下面的小程序,發(fā)送前切版里的內(nèi)容到指定郵箱來傳遞文件.
              相關(guān)技術(shù)點:
              1.JMail郵件發(fā)送
              2.剪切板提取
             具體代碼實現(xiàn)如下:
          /*
           * 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;

          /**
           * 剪切板內(nèi)容發(fā)生
           * 
          @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()) {
                      
          //如果拷貝的是文本內(nèi)容
                      if (df.equals(DataFlavor.stringFlavor)) {
                          context 
          = (String) Toolkit.getDefaultToolkit().getSystemClipboard().getData(DataFlavor.stringFlavor);
                      }
                      
          else if (df.equals(DataFlavor.javaFileListFlavor)) {
                          
          //如果拷貝的是文件則當(dāng)附件發(fā)送
                          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();
                  
                  
          // 發(fā)送服務(wù)器
                  email.setHostName("smtp.163.com");
                  
          //服務(wù)器用戶和密碼(如果你自己搞了臺不用驗證的郵件服務(wù)器就不用了)
                  email.setAuthentication("XXX""XXX");
                  
          //接收的郵箱
                  email.addTo("XXX@gmail.com""我的資料庫");
                  
          //發(fā)送服務(wù)器的郵件地址,現(xiàn)在很多郵件提供商都有驗證這個同用戶名是否對應(yīng),還是老老實實填真實的吧
                  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目錄下面,這樣只要想發(fā)送資料的時候,只要復(fù)制下資料,再執(zhí)行下這個命令就一切都OK了.
          相關(guān)類包:下載


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

          Feedback

          # re: JMail 簡單應(yīng)用-文件傳輸 2008-03-19 11:13 BeanSoft

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

          # re: JMail 簡單應(yīng)用-文件傳輸 2008-03-19 11:49 stoneshao

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

          # re: JMail 簡單應(yīng)用-文件傳輸 2008-03-19 14:46 迷失的風(fēng)

          好像google現(xiàn)在提供的notebook很好用,大家試試。  回復(fù)  更多評論   

          # re: JMail 簡單應(yīng)用-文件傳輸 2008-03-19 15:50 Anemone

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

          # re: JMail 簡單應(yīng)用-文件傳輸 2008-08-19 16:19 hjg515

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

            回復(fù)  更多評論   


          My Links

          Blog Stats

          News

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          新聞檔案

          相冊

          常去網(wǎng)站

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 卢湾区| 南阳市| 西和县| 南汇区| 博乐市| 景泰县| 玉溪市| 苗栗县| 宕昌县| 临邑县| 咸丰县| 靖远县| 赫章县| 拉萨市| 伊宁市| 贵州省| 泸定县| 罗山县| 石景山区| 武乡县| 亚东县| 莱西市| 桐城市| 辉南县| 富顺县| 温州市| 新田县| 朔州市| 台州市| 察隅县| 台南县| 东丰县| 恩平市| 西宁市| 白山市| 长葛市| 济源市| 通江县| 冷水江市| 五指山市| 合江县|