應用程式伺服器
(1) javax.mail.Properties類
JavaMail需要Properties來建立一個session物件。它將尋找字串"mail.smtp.host",屬性值就是發送郵件的主機.
用法:
複製代碼代碼如下:
Properties props = new Properties ();
props.put("mail.smtp.host", "smtp.163.com");//可以換上你的smtp主機名稱。
複製代碼代碼如下:
Properties props = new Properties ();
props.put("mail.smtp.host", "smtp.163.com");//可以換上你的smtp主機名稱。
(2) javax.mail.Session類
這個Session類別代表JavaMail 中的一個郵件session. 每一個基於JavaMail的應用程式至少有一個session但是可以有任意多的session。 在這個例子中, Session物件需要知道用來處理郵件的SMTP 伺服器。
用法:
複製代碼代碼如下:
Session sendMailSession;
sendMailSession = Session.getInstance(props, null);
複製代碼代碼如下:
Session sendMailSession;
sendMailSession = Session.getInstance(props, null);
(3) javax.mail.Transport類
郵件是既可以被發送也可以被受到。 JavaMail使用了兩個不同的類別來完成這兩個功能:Transport 和Store. Transport 是用來傳送訊息的,而Store用來收信。對於這的教學我們只需要用到Transport物件。
用法:
複製代碼代碼如下:
Transport transport;
transport = sendMailSession.getTransport("smtp");
複製代碼代碼如下:
Transport transport;
transport = sendMailSession.getTransport("smtp");
用JavaMail Session物件的getTransport 方法來初始化Transport。傳過去的字串申明了物件所要使用的協議,如"smtp"。這將為我們省了很多時間。因為JavaMail以境內建了許多協議的實作方法。
注意: JavaMail並不是絕對支援每一個協議,目前支援IMAP、 SMTP和POP3.
(4) javax.mail.MimeMessage類
Message物件將儲存我們實際發送的電子郵件訊息,Message物件被作為一個MimeMessage物件來建立並且需要知道應選擇哪一個JavaMail session。
用法:
複製代碼代碼如下:
Message newMessage = new MimeMessage(sendMailSession);
複製代碼代碼如下:
Message newMessage = new MimeMessage(sendMailSession);
Message newMessage = new MimeMessage(sendMailSession);
(5) javax.mail.InternetAddress類
一旦您建立了Session 和Message,並將內容填入訊息後,就可以用Address確定信件地址了。和Message 一樣,Address 也是個抽象類別。您用的是Javax.mail.internet.InternetAddress 類別.
用法:
複製代碼代碼如下:
InternetAddress from=new InternetAddress("[email protected]");
複製代碼代碼如下:
InternetAddress from=new InternetAddress("[email protected]");
(6) javax.mail.Store類
Store類別實作特定郵件協定上的讀取、寫入、監視、查找等操作。透過Javax.mail.Store類別可以存取Javax.mail.Folder類別。
用法:
複製代碼代碼如下:
Store store=s.getSorte("pop3");//s為一個郵件會話
store.connect(popserver,username,password);//透過你提供的pop位址,使用者名稱和密碼登入你的信箱
複製代碼代碼如下:
Store store=s.getSorte("pop3");//s為一個郵件會話
store.connect(popserver,username,password);//透過你提供的pop位址,使用者名稱和密碼登入你的信箱
(7) javax.mail.Folder類
Folder類別用於分級組織郵件,並提供照Javax.mail.Message格式存取email的能力。
用法:
複製代碼代碼如下:
Folder folder=store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
複製代碼代碼如下:
Folder folder=store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
(8) javax.mail.Internet.MimeMultpart
一般保存電子郵件內容的容器是Multipart抽象類別,它定義了增加和刪除及獲得電子郵件不同部分內容的方法.由於Multipart是抽象類別,我們必須為它使用一個具體的子類別,JavaMail API提供javax. mail.Internet.MimeMultpart類別來使用MimeMessage物件.
用法:
複製代碼代碼如下:
MimeMultipart multipart=new MimeMultipart();
複製代碼代碼如下:
MimeMultipart multipart=new MimeMultipart();
註:我們使用MimeMultipart物件的一個方法是addBodyPart(),它在我們的電子郵件內容裡添加BodyPart(BodyPart類別在下面緊接著要介紹)物件.訊息可以有很多部分,一個BodyPart可以代表一個部分.
(9) javax.mail.Internet.MimeBodyPart類
MimeBodyPart是BodyPart具體用於mimeMessage的一個子類別.
MimeBodyPart物件代表一個MimeMessage物件內容的一部分.每個MimeBodyPart被認為有兩個部分:
⊙一個MIME類型
⊙匹配這個類型的內容
用法:
複製代碼代碼如下:
MimeBodyPart mdp=new MimeBodyPart();
String text="Hello JavaMail!";
mdp.setContent(text,"text/plain");//定義MIME類型為text/plain,並設定MimeBodyPart的內容.
複製代碼代碼如下:
MimeBodyPart mdp=new MimeBodyPart();
String text="Hello JavaMail!";
mdp.setContent(text,"text/plain");//定義MIME類型為text/plain,並設定MimeBodyPart的內容.
(10) javax.activation.DataHandler類別(包含在JAF中)
JavaMail API不限制資訊只為文字,任何形式的資訊都可能作繭自縛MimeMessage的一部分.除了文字資訊,作為文件附件包含在電子郵件資訊的一部分是很普遍的.JavaMail API透過使用DataHandler物件,提供一個允許我們包含非文字BodyPart物件的簡單方法.
用法:
複製代碼代碼如下:
DataHandler dh=new DataHandler(text,type);
mdp.setDatahandler(dh);//mdp是MimeBodyPart對象
複製代碼代碼如下:
DataHandler dh=new DataHandler(text,type);
mdp.setDatahandler(dh);//mdp是MimeBodyPart對象
(11) javax.activation.FileDataSource類別(包含在JAF中)
一個FileDataSource物件可以表示本地文件和伺服器可以直接存取的資源.一個本地文件可以透過建立一個新的MimeBodyPart物件附在一個mimeMessage物件上.
用法:
複製代碼代碼如下:
MimeMultipart mm=new MimeMultipart();
MimeBodyPart mdp=new MimeBodyPart();
FileDataSource fds=new FileDataSource("c:/exam.txt");
mdp.setDataHandler(new DataHandler(fds)); //設定資料來源
mm.addBodyPart(mdp); //為目前訊息MimeMultipart物件增加MimeBodyPart
複製代碼代碼如下:
MimeMultipart mm=new MimeMultipart();
MimeBodyPart mdp=new MimeBodyPart();
FileDataSource fds=new FileDataSource("c:/exam.txt");
mdp.setDataHandler(new DataHandler(fds)); //設定資料來源
mm.addBodyPart(mdp); //為目前訊息MimeMultipart物件增加MimeBodyPart
(12) javax.activation.URLDataSource類別(包含在JAF中)
遠端資源,URL不會指向它們,由一個URLDataSource物件表示.一個遠端資源可以透過建立一個新mimeBodyPart物件附在一個mimeMessage物件上(同FileDataSource差不多).
用法:
複製代碼代碼如下:
//與FileDataSource唯一不同的是資料來源的設定:
URLDataSource uds=new URLDataSource("/JAVA/UploadFiles_6441/200703/20070320105128501.gif");