simplesendmaildemo.java
package com.steven.mail;
import java.util.properties;
import javax.mail.address;
import javax.mail.authenticator;
import javax.mail.message;
import javax.mail.passwordauthentication;
import javax.mail.session;
import javax.mail.transport;
import javax.mail.internet.internetaddress;
import javax.mail.internet.mimemessage;
/**
* 最基本的郵件發送代碼
*
* @author steven
*/
public class simplesendmaildemo {
public static void main(string[] args) throws exception {
// 建立郵件的發送過程中用到的主機和端口号的屬性檔案
properties pro = new properties();
// 設定郵件發送方的主機位址如果是163郵箱,則為smtp.163.com
// 如果是其他的郵箱可以參照http://wenku.baidu.com/link?url=cf-1ggew3e7rm9kwfz47ul7vvkrppxakblyotsgpnk4hxpjdiq0a4lropdncmlcmivupen6pd0aobgm5zjam7aogkrdccsx6hdh2fswkxiq這個文檔
pro.put("mail.smtp.host", "smtp.qq.com");
// 設定發送郵件端口号
pro.put("mail.smtp.port", "25");
// 設定郵件發送需要認證
pro.put("mail.smtp.auth", "true");
// 建立郵件驗證資訊,即發送郵件的使用者名和密碼
authenticator authenticator = new authenticator() {
@override
protected passwordauthentication getpasswordauthentication() {
// 重寫驗證方法,填寫使用者名,密碼
return new passwordauthentication("[email protected]", "123");
}
};
// 根據郵件會話 建構一個郵件的session
session sendmailsession = session
.getdefaultinstance(pro, authenticator);
// 建立一個郵件消息
message message = new mimemessage(sendmailsession);
// 建立郵件發送者位址
address sourceaddress = new internetaddress("[email protected]");
// 将原位址設定到消息的資訊中
message.setfrom(sourceaddress);
// 建立郵件的接收者位址
address destaddress = new internetaddress("[email protected]");
// 将接收者的位址設定到消息的資訊中
message.setrecipient(message.recipienttype.to, destaddress);
// 設定郵件的主題
message.setsubject("merry christmas!");
// 設定郵件的發送内容
message.settext("你好,聖誕節快樂!");
// 可以設定郵件的發送時間(就是對方看郵件發送的時間)
// string senddate = "2013-12-23 17:55:00";
// date date = new
// simpledateformat("yyyy-mm-dd hh:mm:ss").parse(senddate);
// message.setsentdate(date);
// 發送郵件
transport.send(message);
這個例子是完全沒有封裝後的源代碼,如果進行封裝的話,可以考慮将發送的郵箱資訊封裝成一個郵件資訊的類,然後驗證可以通過一個類繼承authenticator然後複寫方法getpasswordauthentication(),接着發送的主要業務邏輯可以封裝成一個類,這樣在使用的時候,就可以通過建立郵件資訊,進行驗證,通過主要的業務邏輯調用發送郵件。
然後發送的最終效果如下圖1所示:
圖1
最新内容請見作者的github頁:http://qaseven.github.io/