var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-20738293-1']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script')"/>

          jutleo
          歡迎走進有風的地方~~
          posts - 63,  comments - 279,  trackbacks - 0

           

          今天在Apache網站上下載commons-lang jar文件時突然看到commons-email-1.1.jar這個項目jar文件,看了看user guide確實比JDK提供的好多了,簡單的幾行代碼就實現了發郵件的功能,以前實現過一個純JavaMail帶附件發郵件功能,代碼復雜不說,現在回過頭來都懶得看(主要是WEB項目注釋少)。

              貼上TEST代碼看看,簡單、清晰。只要稍加修改(郵件服務器地址、名稱、密碼)就可以了
           

          簡單郵件的發送:

          package com.bulktree.mail;

          import java.util.Date;

          import org.apache.commons.mail.EmailException;

          import org.apache.commons.mail.SimpleEmail;

          publicclass SimpleMailTest {

              publicstaticvoid main(String[] args) throws EmailException {

                 SimpleEmail email = new SimpleEmail();

                 //設置發送主機的服務器地址

                 email.setHostName("smtp.163.com");

                 //設置收件人郵箱

                 email.addTo("bulktree@126.com","bulktree");

                 //發件人郵箱

                 email.setFrom("bulktree@163.com", "bulktree");

                 //如果要求身份驗證,設置用戶名、密碼,分別為發件人在郵件服務器上注冊的用戶名和密碼

                 email.setAuthentication("bulktree", "123456");

                 //設置郵件的主題

                 email.setSubject("Hello, This is My First Email Application");

                 //郵件正文消息

                 email.setMsg("I am bulktree This is JavaMail Application");

                 email.send();

                 System.out.println("The SimpleEmail send sucessful!!!");

              }

          }

          帶附件郵件發送:

          package com.bulktree.mail;

          import java.net.MalformedURLException;

          import java.net.URL;

          import org.apache.commons.mail.EmailAttachment;

          import org.apache.commons.mail.EmailException;

          import org.apache.commons.mail.MultiPartEmail;

          publicclass AttachmentMailTest {

              publicstaticvoid main(String[] args) throws EmailException, MalformedURLException {

          //     創建一個Email附件

                 EmailAttachment emailattachment = new EmailAttachment();

                 emailattachment.setPath("/biao_05.jpg");

          //     emailattachment.setURL(new URL("http://www.aygfsteel.com/bulktree/picture/bulktree.jpg"));

                 emailattachment.setDisposition(EmailAttachment.ATTACHMENT);

                 emailattachment.setDescription("This is Smile picture");

                 emailattachment.setName("bulktree");

          //     創建一個email

                 MultiPartEmail multipartemail = new MultiPartEmail();

                 multipartemail.setHostName("smtp.163.com");

                 multipartemail.addTo("bulktree@126.com", "bulktree");

                 multipartemail.setFrom("bulktree@163.com", "bulktree");

                 multipartemail.setAuthentication("bulktree", "123456");

                 multipartemail.setSubject("This is a attachment Email");

                 multipartemail.setMsg("this a attachment Eamil Test");

                 //添加附件

                 multipartemail.attach(emailattachment);

                 //發送郵件

                 multipartemail.send();

                

                 System.out.println("The attachmentEmail send sucessful!!!");

              }

          }

          posted on 2008-04-07 09:47 凌晨風 閱讀(24661) 評論(16)  編輯  收藏 所屬分類: Java學習筆記

          FeedBack:
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2008-04-07 11:03 | Unmi
          其實也 JDK 本身沒有提供發郵件的功能,JavaMail 是 J2ee 應具有的。
          用 commons-email 發郵件也是一樣的,要注意發送中文時的亂碼問題。

          試著在英文系統環境下發帶中文的標題和內容,commons-email 提供了相應的方法來設置字符集的。  回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:[未登錄]
          2008-04-07 14:52 | samad
          好,我試試看。。。。  回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2008-04-07 15:01 | xdcsoft
          Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream

          我試了,不知道是不是jdk版本問題?
            回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2008-04-07 15:03 | xdcsoft
          我用的是6.0野馬,我看啦mail.jar下有這個類啊
          怎么就報java.lang.NoClassDefFoundError  回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2008-04-07 19:18 | 凌晨風
          運行本例子程序需要commons-email-1.1.jar和mail.jar這兩個包!  回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2008-04-10 20:43 | taijh999
          運行本例子程序需要commons-email-1.1.jar和mail.jar這兩個包!

          非常好用,謝謝樓主的分享

            回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2008-04-19 15:48 | 老太
          確實很好用。前兩天折騰javamail,真花時間。  回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2008-05-02 15:40 | jezz
          那個mail.jar在哪找啊?我的JDK1.5不帶啊!  回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2008-05-02 20:46 | 凌晨風
          @jezz
          www.apache.org上不是有嗎?  回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:[未登錄]
          2008-05-12 10:39 | swl
          如果我的
          email.setHostName("smtp.163.com");
          email.addTo("bulktree@126.com","bulktree");
          email.setFrom("bulktree@163.com", "bulktree");
          email.setAuthentication("bulktree", "123456");
          email.setSubject("Hello, This is My First Email Application");
          email.setMsg("I am bulktree This is JavaMail Application");
          email.send();
          這些信息都要從數據庫中取到應該怎么做?(具體講解下)

            回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2009-01-09 15:16 | sds
          Exception in thread "main" org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.qq.com:25
          at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1138)
          at org.apache.commons.mail.Email.send(Email.java:1163)
          at com.rocwing.comm.SimpleMailTest.main(SimpleMailTest.java:39)
          Caused by: javax.mail.AuthenticationFailedException
          at javax.mail.Service.connect(Service.java:306)
          at javax.mail.Service.connect(Service.java:156)
          at javax.mail.Service.connect(Service.java:105)
          at javax.mail.Transport.send0(Transport.java:168)
          at javax.mail.Transport.send(Transport.java:98)
          at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1128)
          ... 2 more  回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:[未登錄]
          2009-02-26 14:42 | cn-done
          還需要兩個額外的包mail.jar,activation.jar,這兩個包可以在j2ee1.4里面找到  回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:[未登錄]
          2009-03-03 10:47 | cn-done
          確實不錯 但是不曉得大家遇到 發送中文、日文文件名的附件時,出現的文件名亂碼問題沒?
            回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2009-03-30 14:31 | qqqq
          @凌晨風
            回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2009-05-19 10:15 | 676
          Sending the email to the following server failed : smtp.163.com:25


          jdk1.6 tomcat6.0


          使用commons-email-1.1.jar出錯



          程序:


          package javamial;

          import java.util.Date;

          import org.apache.commons.mail.EmailException;

          import org.apache.commons.mail.SimpleEmail;

          public class Sendmail {


          public void sendMain(){

          SimpleEmail email = new SimpleEmail();

          //設置發送主機的服務器地址

          email.setHostName("smtp.163.com");

          //設置收件人郵箱

          try {
          email.addTo("lujianfei333@sina.com","bulktree");
          } catch (EmailException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
          }

          //發件人郵箱

          try {
          email.setFrom("lujianfei33@163.com", "bulktree");
          } catch (EmailException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
          }

          //如果要求身份驗證,設置用戶名、密碼,分別為發件人在郵件服務器上注冊的用戶名和密碼

          email.setAuthentication("lujianfei33", "6227985");

          //設置郵件的主題

          email.setSubject("Hello, This is My First Email Application");

          //郵件正文消息

          try {
          email.setMsg("I am bulktree This is JavaMail Application");
          } catch (EmailException e) {
          e.printStackTrace();
          }

          try {
          email.send();
          } catch (EmailException e) {
          e.printStackTrace();
          }
          }

          }
            回復  更多評論
            
          # re: 用commons-email-1.1.jar實現發郵件功能:
          2011-01-07 17:33 | afra.liu
          jisdjl fjdshfclkhflshfsfcd  回復  更多評論
            

          <2008年4月>
          303112345
          6789101112
          13141516171819
          20212223242526
          27282930123
          45678910

          常用鏈接

          留言簿(11)

          我參與的團隊

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          收藏夾

          圍脖

          最新隨筆

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 南康市| 乡城县| 长丰县| 陆良县| 洮南市| 肥城市| 石渠县| 安宁市| 昭平县| 应城市| 遂昌县| 文化| 禄丰县| 柳州市| 长宁区| 和顺县| 靖西县| 土默特右旗| 抚顺市| 霸州市| 平舆县| 南投县| 永泰县| 疏勒县| 卢龙县| 江山市| 阳信县| 南投县| 康保县| 通化县| 阳谷县| 凤冈县| 册亨县| 大关县| 波密县| 绵阳市| 晋江市| 古交市| 吉隆县| 抚州市| 沙河市|