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