Posted on 2008-10-25 15:20
夢與橋 閱讀(434)
評論(2) 編輯 收藏 所屬分類:
jsp程序設計
1、構建JavaMail開發環境:
主要是引入兩個包:mail.jar與activation.jar
可以到下面的網站下載最新的JavaMailAPI:
http://java.sun.com/products/javamail/downloads/index.html
可以到下面的網站下載最新的JAF:
http://java.sun.com/javase/technologies/desktop/javabeans/jaf/
解壓下載的zip包,在其中找到mail.jar與activation.jar,將它們拷貝到WEB-INF/lib目錄下
2、構建JavaMail發郵件程序的步驟:創建JavaMail會話--->編寫JavaMail消息--->發送JavaMail消息
1)創建JavaMail會話
Properties props=new Properties();
//指定SMTP服務器
props.put("mail.smtp.host",host);
//指定是否需要smtp驗證
props.put("mail.smtp.auth","true");
Session mailSession=Session.getDefaultInstance(props);
//在控制臺顯示debug信息,用以調試,發布前要設為false,默認為false
mailSession.setDebug(true);
2)編寫JavaMail消息
//構造新的消息對象
Message message=new MimeMessage(mailSession);
//發件人
message.setFrom(new InternetAddress(From));
//收件人
message.addRecipient(Message.RecipientType.TO,new InternetAddress(to));
//抄送人
message.addRecipient(Message.RecipientType.CC,new InternetAddress("wangzhaoqingk@126.com"));
//郵件主題
message.setSubject(Subject) ;
//郵件內容
message.setText(messageText);
//發信日期
message.setSentDate(new Date());
//保存郵件設置信息
message.saveChanges();
3)發送JavaMail消息
//構造傳送對象
Transport transport=mailSession.getTransport("smtp");
transport.connect(host,user,password);
transport.sendMessage(message,message.getAllRecipients());
transport.close();
3、構建JavaMail發郵件程序的步驟:登錄Store--->列出Inbox中的郵件--->讀取消息
1)登錄Store
Properties props=new Properties();
//指定pop3郵件服務器
props.put("mail.pop3.host",host);
//創建郵件會話
Session mailsession=Session.getDefaultInstance(props);
//創建Store對象
Store store=mailsession.getStore("pop3");
//登錄到Store
store.connect(host,user,password);
2)列出Inbox中的郵件
//獲得INBOX文件夾
Folder inbox=store.getDefaultFolder().getFolder("INBOX");
//以讀寫模式打開INBOX文件夾
inbox.open(Folder.READ_WRITE);
//從INBOX文件夾取得所有的消息對象
Message[] message=inbox.getMessages();
3)讀取消息
//循環讀取消息
for(int i=0;i<message.length;i++){
message[i].setFlag(Flags.Flag.DELETED,true);
out.println("郵件主題:"+message[i].getSubject()+"<br>");
out.println("郵件發送者:"+message[i].getFrom()+"<br>");
out.println("發送時間:"+message[i].getSentDate()+"<br>");
out.println("內容:"+message[i].getContent()+"<br>");}
inbox.colse(true);
store.close();
4、構建Multipart消息的步驟:創建Multipart消息--->創建Bodypart--->將Bodypart添加到Multipart消息--->將消息設置為Multipart對象
1)創建Multipart消息
2)創建Bodypart
3)將Bodypart添加到Multipart消息
4)將消息設置為Multipart對象
5、JavaMail組件中為什么Message、Folder和Store都被定義為抽象類?我們如何取得它們相應的實例對象。
答:JavaMail API定義了一個用來管理郵件的通用接口,并且JavaMail允許程序員通過API里的接口來撰寫自己的應用程序,執行時再請求使用某種類型的處理。這樣程序員采用JavaMail編寫郵件消息收發程序具有適應于任何郵件服務器的通用性和跨平臺的優點。Message類我們一般使用其相應的子類MimeMessage創建實例,Store類實例用Session的getStore()方法取得,Folder類實例用Store的getFolder()方法取得。
注:寫本隨筆之前,我調試了三個例子(6個文件),篇幅較長,不再往上貼了,誰若需要,可以給我留言,注上郵箱,我會給你寄過去。