The NoteBook of EricKong

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            611 Posts :: 1 Stories :: 190 Comments :: 0 Trackbacks
          javaMai 為建立郵件和消息服務提供了框架,因而應用程序可以發送和接收郵件.JavaMail API 是一個用于閱讀、編寫和發送電子消息的可選包(標準擴展),可以用來建立基于標準的電子郵件客戶機,它配置了各種因特網郵件協,包括SMTP 、POP 、IMAP和 MIME ,還包括相關的NNTP 、S/MIME 及其它協議。
             通常開發JavaMail 程序通常需要mail.jar 和 activation.jar 兩個架包。mail.jar包含mailapi.jar、pop3.jar 和 smtp.jar。mailapi.jar包含核心的API 類, pop3.jar 和 smtp.jar為各自的郵件協議包含實現方法. activation.jar處理 MIME (多用途因特網郵件擴展)類型。

             核心JavaMail API 由七個類組成:Session 、Message 、Address 、Authenticator 、Transport 、Store 及 Folder ,它們都來自javax.mail 、即JavaMail API 頂級包。可以用這些類完成大量常見的電子郵件任務,包括發送消息、檢索消息、刪除消息、認證、回復消息、轉發消息、管理附件、處理基于HTML文件格式的 消息以及搜索或過濾郵件列表。
          這里只具體說明一下發送郵件的JavaMail類:
          1.Session
          這個Session類代表JavaMail 中的一個郵件session. 每一個基于 JavaMail的應用程序至少有一個session但是可以有任意多的session。
               在這個例子中, Session對象需要知道用來處理郵件的SMTP 服務器。JavaMail需要Properties來創建一個session對象
          Session sendMailSession;
              Properties props = new Properties ();
          props.put("mail.smtp.host", "smtp.sina.com.cn");//可以換上你的smtp主機名。
          sendMailSession = Session.getInstance(props, null);
          2.Transport
          Transport 是用來發送信息的.
          用法:Transport transport;
          transport = sendMailSession.getTransport("smtp");
          用JavaMail Session對象的getTransport 方法來初始化Transport。傳過去的字符串申明了對象所要使用的協議,如"smtp"。這是因為JavaMail以境內置了很多協議的實現方法。
          注意: JavaMail并不是絕對支持每一個協議,目前支持IMAP、 SMTP和 POP3。
          3.Message
          Message對象將存儲我們實際發送的電子郵件信息,Message對象被作為一個MimeMessage對象來創建并且需要知道應當選擇哪一個JavaMail session。
          使用方法:Message newMessage = new MimeMessage(sendMailSession);
          4.MimeMessage
              實現Message接口,以顯示Mime風格的消息
          5.InternetAddress
              存儲電子郵件中關于“from”、“to”域的信息


          用JavaMail發送電子郵件的過程比較簡單,大致分為以下5個步驟:
          1.創建Properties 對象,設置郵件服務器屬性:mail.smtp.host ,即指定你的SMTP服務器。
          2.建立一個郵件會話
          3.創建你的郵件信息對象,該對象包含了你的郵件的全部內容,包括發送人,接受人,標題,正文,附件等內容
          4.完成發送前的服務器驗證
          5.發送郵件
          import java.io.*;                                                                                                               
          import java.text.*;                                                                                                             
          import java.util.*;                                                                                                             
          import javax.activation.DataHandler;                                                                                              
          import javax.activation.FileDataSource;                                                                                         
          import javax.mail.*;                                                                                                            
          import javax.mail.internet.*;                                                                                                   
                                                                                                                                          
          public class SimpleSender {                                                                                                     
                                                                                                                                          
           
          public static void main(String args[]) {                                                                                       
            
          try {                                                                                                                         
             String smtpServer 
          = "smtp.sina.com.cn";                                                                                      
             String to 
          = "test1@sina.com.cn";                                                                                             
             String from 
          = "test2@sina.com.cn";                                                                                           
             String subject 
          = "hello";                                                                                                    
             String body 
          = "";                                                                                                            
             send(smtpServer, to, from, subject, body);                                                                                   
            } 
          catch (Exception ex) {                                                                                                      
             System.out.println(
          "Usage: java test.SimpleSender"                                                                           
               
          + " smtpServer toAddress fromAddress subjectText bodyText");                                                               
            }                                                                                                                             
                                                                                                                                          
           }                                                                                                                              
                                                                                                                                          
           
          public static void send(String smtpServer, String to, String from,                                                             
             String subject, String body) {                                                                                               
            
          try {                                                                                                                         
              Properties props 
          = System.getProperties();                                                                                  
              props.put(
          "mail.smtp.host", smtpServer);                                                                                    
              props.put(
          "mail.smtp.auth","true");                                                                                         
              Authenticator  sa 
          = new SmtpAuth(from, "");                                                                                 
                     Session session 
          = Session.getDefaultInstance(props,sa);                                                              
                     InternetAddress     fromadress   
          =   new   InternetAddress(from);                                                    
                     javax.mail.internet.InternetAddress   toadress
          =   new   javax.mail.internet.InternetAddress   (to);                  
                     javax.mail.internet.MimeMessage     mymessage   
          =   new   javax.mail.internet.MimeMessage   (session);               
                     mymessage.setFrom(fromadress);                                                                                       
                     mymessage.setRecipient(Message.RecipientType.TO   ,toadress);                                                        
                     mymessage.setSentDate(
          new   java.util.Date());                                                                       
                     mymessage.addHeader(
          "header","test")   ;                                                                             
                     mymessage.setSubject(subject)   ;                                                                                    
                     mymessage.setText(
          "hello")   ;                                                                                       
                     Transport   tt
          =session.getTransport("smtp");                                                                         
                     tt.send(mymessage);                                                                                                  
            } 
          catch (Exception ex) {                                                                                                      
             System.out.println(ex.toString());                                                                                           
            }                                                                                                                             
                                                                                                                                          
           }                                                                                                                              
          }
                                                                                                                                       

          posted on 2010-07-21 17:18 Eric_jiang 閱讀(1010) 評論(1)  編輯  收藏 所屬分類: Java

          Feedback

          # re: 在java應用程序中加入發送郵件的功能 2013-04-01 14:42 宣傳部
          在vb小財不出  回復  更多評論
            

          主站蜘蛛池模板: 依安县| 崇阳县| 仙游县| 吉隆县| 昌平区| 祁门县| 德保县| 聂荣县| 宜章县| 宜兰市| 临高县| 逊克县| 荥阳市| 怀仁县| 普安县| 万年县| 中超| 黎平县| 鄂托克前旗| 莒南县| 平乐县| 东明县| 根河市| 织金县| 铁岭市| 龙门县| 镇赉县| 大理市| 澄迈县| 应用必备| 河北省| 千阳县| 屏东市| 江油市| 钟祥市| 屏边| 武定县| 揭东县| 广水市| 天全县| 扶余县|