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





Session mailSession=Session.getDefaultInstance(props);
//在控制臺(tái)顯示debug信息,用以調(diào)試,發(fā)布前要設(shè)為false,默認(rèn)為false
mailSession.setDebug(true);





















1)登錄Store
























1)創(chuàng)建Multipart消息
2)創(chuàng)建Bodypart
3)將Bodypart添加到Multipart消息
4)將消息設(shè)置為Multipart對(duì)象
5、JavaMail組件中為什么Message、Folder和Store都被定義為抽象類?我們?nèi)绾稳〉盟鼈兿鄳?yīng)的實(shí)例對(duì)象。
答:JavaMail API定義了一個(gè)用來管理郵件的通用接口,并且JavaMail允許程序員通過API里的接口來撰寫自己的應(yīng)用程序,執(zhí)行時(shí)再請(qǐng)求使用某種類型的處理。這樣程序員采用JavaMail編寫郵件消息收發(fā)程序具有適應(yīng)于任何郵件服務(wù)器的通用性和跨平臺(tái)的優(yōu)點(diǎn)。Message類我們一般使用其相應(yīng)的子類MimeMessage創(chuàng)建實(shí)例,Store類實(shí)例用Session的getStore()方法取得,F(xiàn)older類實(shí)例用Store的getFolder()方法取得。
注:寫本隨筆之前,我調(diào)試了三個(gè)例子(6個(gè)文件),篇幅較長,不再往上貼了,誰若需要,可以給我留言,注上郵箱,我會(huì)給你寄過去。