apache的commons項(xiàng)目下有個(gè)email子項(xiàng)目,它對JavaMail API進(jìn)行了封裝,用起來特變方便。在開始之前,需要做以下準(zhǔn)備:
1、JavaMail API
添加JavaMail API里的mail包到CLASSPATH里,JavaMail API下載地址:http://java.sun.com/products/javamail/downloads/index.html
2、commons email
下載地址:http://www.apache.org/dist/commons/email/
工程目錄結(jié)構(gòu)如下:

以下給出兩個(gè)簡單示例程序
// SendMail.java 使用SimpleEmail發(fā)郵件
package com.apache.commons.email.demo;
import org.apache.commons.mail.SimpleEmail;
public class SendMail
{
??? public static void main ( String[] arg ) throws Exception
??? {
??? // 使用SimpleEmail對于中文內(nèi)容,可能會(huì)產(chǎn)生亂碼
??????? SimpleEmail email = new SimpleEmail ( );
??????? // SMTP服務(wù)器名
??????? email.setHostName ( "smtp.163.com" );
??????? // 登陸郵件服務(wù)器的用戶名和密碼
??????? email.setAuthentication ( "peki", "123456" );
??????? // 接收人
??????? email.addTo ( "jstio@qq.com", "曦勤" );
??????? // 發(fā)送人
??????? email.setFrom ( "peki@163.com", "小陳" );
??????? // 標(biāo)題
??????? email.setSubject ( "Test message" );
??????? // 郵件內(nèi)容
??????? email.setMsg ( "This is a simple test of commons-email<br>我是小陳" );
??????? // 發(fā)送
??????? email.send ( );
???????
??????? System.out.println ( "Send email successful!" );
??? }
}
收信結(jié)果如下:
This is a simple test of commons-email<br>????
有亂碼產(chǎn)生,并且html內(nèi)容沒有正常顯示
// MailSender.java?? 使用HtmlEmail發(fā)郵件
package com.apache.commons.email.demo;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class MailSender {
public static void main(String[] args) {
?? // 不要使用SimpleEmail,會(huì)出現(xiàn)亂碼問題
?? HtmlEmail email = new HtmlEmail();
?? try {
??? // 這里是SMTP發(fā)送服務(wù)器的名字:,163的如下:
??? email.setHostName("smtp.163.com");
??? // 字符編碼集的設(shè)置
??? email.setCharset("gbk");
??? // 收件人的郵箱
??? email.addTo("jstio@qq.com");
??? // 發(fā)送人的郵箱
??? email.setFrom("peki@163.com", "小陳");
??? // 如果需要認(rèn)證信息的話,設(shè)置認(rèn)證:用戶名-密碼。分別為發(fā)件人在郵件服務(wù)器上的注冊名稱和密碼
??? email.setAuthentication("peki", "123456");
??? email.setSubject("下午3:00會(huì)議室討論,請準(zhǔn)時(shí)參加");
??? // 要發(fā)送的信息,由于使用了HtmlEmail,可以在郵件內(nèi)容中使用HTML標(biāo)簽
??? email.setMsg("下午3:00會(huì)議室討論,請準(zhǔn)時(shí)參加<BR>呵呵~!");
??? // 發(fā)送
??? email.send();
???
??? System.out.println ( "郵件發(fā)送成功!" );
?? } catch (EmailException e) {
??? // TODO Auto-generated catch block
??? e.printStackTrace();
??? System.out.println ( "郵件發(fā)送失敗!" );
?? }
}
}
收信結(jié)果如下:
下午3:00會(huì)議室討論,請準(zhǔn)時(shí)參加
呵呵~!
沒有產(chǎn)生亂碼,html內(nèi)容正常顯示
以上程序盡供參考,如需要在開發(fā)中使用,還得深入研究