javaMail学习(三)——使用javaMail给易邮邮账户发简单邮件
生活随笔
收集整理的這篇文章主要介紹了
javaMail学习(三)——使用javaMail给易邮邮账户发简单邮件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
沒什么可說的,直接上代碼吧:
package com.wjl.mail.utils;import java.util.Properties;import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.Message.RecipientType; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage;/*** 郵件發(fā)送的工具類* 使用eyoumailserver,內(nèi)部賬戶發(fā)郵件*/ /* javax.mail.Session:上下文環(huán)境信息,如服務(wù)器的主機(jī)名、端口號、協(xié)議名稱等 javax.mail.Message:郵件模型,發(fā)送郵件和接收郵件的媒介,封裝了郵件的信息,如發(fā)件人、收件人、郵件標(biāo)題、郵件內(nèi)容等 javax.mail.Transport:連接郵件SMTP服務(wù)器,發(fā)送郵件 javax.mail.Store:連接郵件POP3、IMAP服務(wù)器,收取郵件 */ public class MailUtils2 {private static String userName = "user03@wjl.com";//發(fā)送郵件的人private static String password = "123456";//發(fā)送郵件的賬戶的密碼private static String userName2 = "user04@wjl.com";//接收郵件的人private static String port = "25";//465、587/*** 該方法用來發(fā)送郵件* @param to:給誰發(fā)郵件* **/public static void sendMain(String to) throws AddressException, MessagingException{//1、創(chuàng)建連接對象,連接到郵箱服務(wù)器Properties props = new Properties();//開啟debug調(diào)試 props.setProperty("mail.debug", "true"); //stmp服務(wù)器需要進(jìn)行身份驗證,也就是有戶名和密碼的校驗,這樣才能通過驗證props.setProperty("mail.smtp.auth", "true"); //發(fā)送郵件協(xié)議名稱 props.setProperty("mail.transport.protocol", "smtp"); //設(shè)置郵件服務(wù)器主機(jī)名 props.setProperty("mail.host", "127.0.0.1");//本地//設(shè)端口號(該配置可寫可不寫)props.setProperty("mail.smtp.port", port);//Authenticator:認(rèn)證信息Session session = Session.getInstance(props, new Authenticator(){@Overrideprotected PasswordAuthentication getPasswordAuthentication() {return new PasswordAuthentication(userName,password);//使用它給其他賬戶發(fā)郵件}});//2、創(chuàng)建郵件對象Message message = new MimeMessage(session);//2.1設(shè)置發(fā)件人message.setFrom(new InternetAddress(userName));//2、2設(shè)置收件人message.setRecipient(RecipientType.TO, new InternetAddress(to));//2.3郵件的主題message.setSubject("測試發(fā)消息");//2.4郵件的正文(即郵件的內(nèi)容)message.setContent("測試郵件:來自user03@wjl.com的郵件","text/html;charset=utf-8");//3.發(fā)送郵件Transport trans = session.getTransport();//連接郵件服務(wù)器trans.connect(userName, password); //發(fā)送郵件trans.sendMessage(message, message.getAllRecipients()); //關(guān)閉連接trans.close();//Transport.send(message);(兩種方式都可以)System.out.println("發(fā)送成功");}public static void main(String[] args) {try {sendMain(userName2);} catch (Exception e) {e.printStackTrace();} } }執(zhí)行成功之后,使用Foxmail查看郵件。
說明郵件發(fā)送成功了。
?
可能遇到的問題:
執(zhí)行代碼時報錯:java.lang.NoClassDefFoundError: com/sun/mail/util/BEncoderStream
原因是jar包版本不統(tǒng)一,javaMail與Java EE 5 Libraries/javaee.jar/mail里的包有東西沖突。
解決辦法:將Java EE 5 Libraries換成Java EE 6 Libraries
Libraries替換:
選中項目右擊---->Properties---->Java Build Path---->Add Library,如圖:
選默認(rèn)的“MyEclipse Libraries” 。
勾選“Java EE 6 Libraries” 。然后Finish。
此時Libraries中有兩個Libraries,一個5一個6,將Java EE 5 Libraries刪除,然后確定。
再執(zhí)行代碼,就不會再報錯啦。
總結(jié)
以上是生活随笔為你收集整理的javaMail学习(三)——使用javaMail给易邮邮账户发简单邮件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SMTP邮件服务器要求安全连接或客户端未
- 下一篇: 邮件服务器潜在漏洞的保护方法