javaMail組件應用---------1

 

<%@ page import="java.util.*,javax.mail.*"%>

<%@ page import="javax.mail.internet.*"%>

 

try{

//取得對象值

String tto=request.getParameter("to");

String ttitle=request.getParameter("title");

String tcontent=request.getParameter("content");

 

/* Properties 類表示了一個持久的屬性集。Properties 可保存在流中或從流中加載。屬性列表中每個鍵及其對應值都是一個字符串。一個屬性列表可包含另一個屬性列表作爲它的默認值;如果未能在原有的屬性列表中搜索到屬性鍵,則搜索第二個屬性列表。

 

Properties 類繼承Hashtable並且調用 Hashtable 的方法 put

 

Hashtable類實現一個哈希表,該哈希表將鍵映射到相應的值。任何非 null 對象都可以用作鍵或值。爲了成功地在哈希表中存儲和獲取對象,用作鍵的對象必須實現 hashCode 方法和 equals 方法

put(K key, V value) 將指定 key 映射到此哈希表中的指定 value

*/

Properties props=new Properties();

props.put("mail.smtp.host","smtp.163.com");

props.put("mail.smtp.auth","true");

 

/*Session類定義了一個基本的郵件會話。通過該會話可讓別的工作順利執行。Session對象利用java.util.Properties對象獲取諸如郵件服務器、用戶名、密碼等信息,以及其他可在整個應用程序中共享的信息。

Session類的構造器是私有的。您可以獲得一個可被getDefaultInstance()方法共享的單一的默認會話:

*/

Session s=Session.getInstance(props);

s.setDebug(true);

 

// MimeMessage是一種理解MIME類型和報頭(在不同的RFC文檔中均有定義)的消息

MimeMessage message=new MimeMessage(s);

/*

一旦創建了會話和消息,併爲消息填充了內容,就需要用Address類爲您的信件標上地址了。同Message類一樣,Address類也是一種抽象類。您可以使用javax.mail.internet.InternetAddress類。要創建只帶有電子郵件地址的地址,可以把電子郵件地址傳遞給Address類的構造器:

*/

//給消息對象設置發件人/收件人/主題/發信時間

InternetAddress from=new InternetAddress("[email protected]");

message.setFrom(from);

InternetAddress to=new InternetAddress(tto);

message.setRecipient(Message.RecipientType.TO,to);

message.setSubject(ttitle);

message.setSentDate(new Date());

 

/*

轉發消息涉及的內容要稍微多一點,沒有一個專門用於轉發消息的方法,您可以通過處理組成消息的各個部分來創建要轉發的消息。

    一條郵件消息可由多個部分組成,每一部分是一個BodyPart(報文部分),或更特殊一點,在操作MIME消息時則是MimeBodyPart。不同的報文部分組合到一個稱爲Multipart的容器中,或者又更特殊一點,是一個MimeMultipart容器。要轉發消息,您要創建一個用於消息文本的部分,和用於要轉發的消息的第二個部分,並將這兩個部分組合成一個multipart(多個部分)。然後您可以把這個multipart添加到一個合適的註明地址的消息中併發送它。

    這就是轉發消息的本質。要把一條消息的內容複製給另一條消息,只需通過它的DataHandler類複製即可,它是出自於JavaBeans Activation Framework的一個類。

*/

//給消息對象設置內容

BodyPart mdp=new MimeBodyPart();//新建一個存放信件內容的BodyPart對象

mdp.setContent(tcontent,"text/html;charset=gb2312");//BodyPart對象設置內容和格式/編碼方式

Multipart mm=new MimeMultipart();//新建一個MimeMultipart對象用來存放BodyPart

//(事實上可以存放多個)

mm.addBodyPart(mdp);//BodyPart加入到MimeMultipart對象中(可以加入多個BodyPart)

message.setContent(mm);//mm作爲消息對象的內容

 

message.saveChanges();

/*

發送消息的最後一步操作是使用Transport類。該類使用特定於協議(通常是SMTP)的語言來發送消息。它是一個抽象類,其操作與Session類有些相似。您可以通過只調用靜態的send()方法來使用該類的默認版本:

    Transport.send(message);

*/

Transport transport=s.getTransport("smtp");

transport.connect("smtp.163.com","sungxmail","sungxd");

transport.sendMessage(message,message.getAllRecipients());

transport.close();

}catch(MessagingException e){

out.println(e.toString());

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章