一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - Java mail 發送郵件的具體實例

Java mail 發送郵件的具體實例

2019-11-06 11:24java教程網 JAVA教程

這篇文章主要介紹了Java mail 發送郵件的具體實例,需要的朋友可以參考下

今天學習了一下JavaMail,javamail發送郵件確實是一個比較麻煩的問題。為了以后使用方便,自己寫了段代碼,打成jar包,以方便以后使用。呵呵

以下三段代碼是我的全部代碼,朋友們如果想用,直接復制即可。jar包因為我不知道怎么傳到javaeye上,所以朋友們回去自己打吧。 
我的代碼有三個類: 
第一個類:MailSenderInfo.java

 

復制代碼代碼如下:

package com.util.mail;
/** 
* 發送郵件需要使用的基本信息 
*/ 
import java.util.Properties; 
public class MailSenderInfo { 
 // 發送郵件的服務器的IP和端口 
 private String mailServerHost; 
 private String mailServerPort = "25"; 
 // 郵件發送者的地址 
 private String fromAddress; 
 // 郵件接收者的地址 
 private String toAddress; 
 // 登陸郵件發送服務器的用戶名和密碼 
 private String userName; 
 private String password; 
 // 是否需要身份驗證 
 private boolean validate = false; 
 // 郵件主題 
 private String subject; 
 // 郵件的文本內容 
 private String content; 
 // 郵件附件的文件名 
 private String[] attachFileNames;  
 /** 
   * 獲得郵件會話屬性 
   */ 
 public Properties getProperties(){ 
   Properties p = new Properties(); 
   p.put("mail.smtp.host", this.mailServerHost); 
   p.put("mail.smtp.port", this.mailServerPort); 
   p.put("mail.smtp.auth", validate ? "true" : "false"); 
   return p; 
 } 
 public String getMailServerHost() { 
   return mailServerHost; 
 } 
 public void setMailServerHost(String mailServerHost) { 
   this.mailServerHost = mailServerHost; 
 }
 public String getMailServerPort() { 
   return mailServerPort; 
 }
 public void setMailServerPort(String mailServerPort) { 
   this.mailServerPort = mailServerPort; 
 }
 public boolean isValidate() { 
   return validate; 
 }
 public void setValidate(boolean validate) { 
   this.validate = validate; 
 }
 public String[] getAttachFileNames() { 
   return attachFileNames; 
 }
 public void setAttachFileNames(String[] fileNames) { 
   this.attachFileNames = fileNames; 
 }
 public String getFromAddress() { 
   return fromAddress; 
 } 
 public void setFromAddress(String fromAddress) { 
   this.fromAddress = fromAddress; 
 }
 public String getPassword() { 
   return password; 
 }
 public void setPassword(String password) { 
   this.password = password; 
 }
 public String getToAddress() { 
   return toAddress; 
 } 
 public void setToAddress(String toAddress) { 
   this.toAddress = toAddress; 
 } 
 public String getUserName() { 
   return userName; 
 }
 public void setUserName(String userName) { 
   this.userName = userName; 
 }
 public String getSubject() { 
   return subject; 
 }
 public void setSubject(String subject) { 
   this.subject = subject; 
 }
 public String getContent() { 
   return content; 
 }
 public void setContent(String textContent) { 
   this.content = textContent; 
 } 

 

第二個類:SimpleMailSender.java

 

復制代碼代碼如下:


package com.util.mail;

 

import java.util.Date; 
import java.util.Properties;
import javax.mail.Address; 
import javax.mail.BodyPart; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.Multipart; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeBodyPart; 
import javax.mail.internet.MimeMessage; 
import javax.mail.internet.MimeMultipart;

/** 
* 簡單郵件(不帶附件的郵件)發送器 
*/ 
public class SimpleMailSender  { 
/** 
  * 以文本格式發送郵件 
  * @param mailInfo 待發送的郵件的信息 
  */ 
 public boolean sendTextMail(MailSenderInfo mailInfo) { 
   // 判斷是否需要身份認證 
   MyAuthenticator authenticator = null; 
   Properties pro = mailInfo.getProperties();
   if (mailInfo.isValidate()) { 
   // 如果需要身份認證,則創建一個密碼驗證器 
  authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword()); 
   }
   // 根據郵件會話屬性和密碼驗證器構造一個發送郵件的session 
   Session sendMailSession = Session.getDefaultInstance(pro,authenticator); 
   try { 
   // 根據session創建一個郵件消息 
   Message mailMessage = new MimeMessage(sendMailSession); 
   // 創建郵件發送者地址 
   Address from = new InternetAddress(mailInfo.getFromAddress()); 
   // 設置郵件消息的發送者 
   mailMessage.setFrom(from); 
   // 創建郵件的接收者地址,并設置到郵件消息中 
   Address to = new InternetAddress(mailInfo.getToAddress()); 
   mailMessage.setRecipient(Message.RecipientType.TO,to); 
   // 設置郵件消息的主題 
   mailMessage.setSubject(mailInfo.getSubject()); 
   // 設置郵件消息發送的時間 
   mailMessage.setSentDate(new Date()); 
   // 設置郵件消息的主要內容 
   String mailContent = mailInfo.getContent(); 
   mailMessage.setText(mailContent); 
   // 發送郵件 
   Transport.send(mailMessage);
   return true; 
   } catch (MessagingException ex) { 
    ex.printStackTrace(); 
   } 
   return false; 
 } 

 /** 
   * 以HTML格式發送郵件 
   * @param mailInfo 待發送的郵件信息 
   */ 
 public static boolean sendHtmlMail(MailSenderInfo mailInfo){ 
   // 判斷是否需要身份認證 
   MyAuthenticator authenticator = null;
   Properties pro = mailInfo.getProperties();
   //如果需要身份認證,則創建一個密碼驗證器  
   if (mailInfo.isValidate()) { 
  authenticator = new MyAuthenticator(mailInfo.getUserName(), mailInfo.getPassword());
   } 
   // 根據郵件會話屬性和密碼驗證器構造一個發送郵件的session 
   Session sendMailSession = Session.getDefaultInstance(pro,authenticator); 
   try { 
   // 根據session創建一個郵件消息 
   Message mailMessage = new MimeMessage(sendMailSession); 
   // 創建郵件發送者地址 
   Address from = new InternetAddress(mailInfo.getFromAddress()); 
   // 設置郵件消息的發送者 
   mailMessage.setFrom(from); 
   // 創建郵件的接收者地址,并設置到郵件消息中 
   Address to = new InternetAddress(mailInfo.getToAddress()); 
   // Message.RecipientType.TO屬性表示接收者的類型為TO 
   mailMessage.setRecipient(Message.RecipientType.TO,to); 
   // 設置郵件消息的主題 
   mailMessage.setSubject(mailInfo.getSubject()); 
   // 設置郵件消息發送的時間 
   mailMessage.setSentDate(new Date()); 
   // MiniMultipart類是一個容器類,包含MimeBodyPart類型的對象 
   Multipart mainPart = new MimeMultipart(); 
   // 創建一個包含HTML內容的MimeBodyPart 
   BodyPart html = new MimeBodyPart(); 
   // 設置HTML內容 
   html.setContent(mailInfo.getContent(), "text/html; charset=utf-8"); 
   mainPart.addBodyPart(html); 
   // 將MiniMultipart對象設置為郵件內容 
   mailMessage.setContent(mainPart); 
   // 發送郵件 
   Transport.send(mailMessage); 
   return true; 
   } catch (MessagingException ex) { 
    ex.printStackTrace(); 
   } 
   return false; 
 } 

 

第三個類:MyAuthenticator.java

 

復制代碼代碼如下:


package com.util.mail;

 

import javax.mail.*;

public class MyAuthenticator extends Authenticator{
 String userName=null;
 String password=null;

 public MyAuthenticator(){
 }
 public MyAuthenticator(String username, String password) { 
  this.userName = username; 
  this.password = password; 
 } 
 protected PasswordAuthentication getPasswordAuthentication(){
  return new PasswordAuthentication(userName, password);
 }
}

 

 

下面給出使用上面三個類的代碼:

 

復制代碼代碼如下:


public static void main(String[] args){
         //這個類主要是設置郵件
   MailSenderInfo mailInfo = new MailSenderInfo(); 
   mailInfo.setMailServerHost("smtp.163.com"); 
   mailInfo.setMailServerPort("25"); 
   mailInfo.setValidate(true); 
   mailInfo.setUserName("[email protected]"); 
   mailInfo.setPassword("**********");//您的郵箱密碼 
   mailInfo.setFromAddress("[email protected]"); 
   mailInfo.setToAddress("[email protected]"); 
   mailInfo.setSubject("設置郵箱標題"); 
   mailInfo.setContent("設置郵箱內容"); 
         //這個類主要來發送郵件
   SimpleMailSender sms = new SimpleMailSender();
          sms.sendTextMail(mailInfo);//發送文體格式 
          sms.sendHtmlMail(mailInfo);//發送html格式
 }

 

 

 

最后,給出朋友們幾個注意的地方: 
1、使用此代碼你可以完成你的javamail的郵件發送功能。三個類缺一不可。 
2、這三個類我打包是用的com.util.mail包,如果不喜歡,你可以自己改,但三個類文件必須在同一個包中 
3、不要使用你剛剛注冊過的郵箱在程序中發郵件,如果你的163郵箱是剛注冊不久,那你就不要使用“smtp.163.com”。因為你發不出去。剛注冊的郵箱是不會給你這種權限的,也就是你不能通過驗證。要使用你經常用的郵箱,而且時間比較長的。 
4、另一個問題就是mailInfo.setMailServerHost("smtp.163.com");與mailInfo.setFromAddress("[email protected]");這兩句話。即如果你使用163smtp服務器,那么發送郵件地址就必須用163的郵箱,如果不的話,是不會發送成功的。 
5、關于javamail驗證錯誤的問題,網上的解釋有很多,但我看見的只有一個。就是我的第三個類。你只要復制全了代碼,我想是不會有問題的。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 男同志与动人物zozotv | 2022最新国产在线不卡a | jizz女16处| 亚洲午夜小视频 | asian4you裸模 | 女性性色生活片免费观看 | 亚洲阿v天堂在线2017 | 无人视频在线观看完整版高清 | 日韩人成免费网站大片 | 国产精品亚洲精品日韩已满 | 国产乱叫456在线 | 美女扒开奶罩让男人吃奶 | 午夜精品久久久久久久99蜜桃i | 国产欧美一区二区三区免费 | 五月丁开婷婷 | 久久视频在线视频观看天天看视频 | 糖心视频在线观看 | 久久青草免费91线频观看站街 | 日本 片 成人 在线 日b视频免费 | 色小妹在线 | 深夜国产在线 | 美女林柏欣21p人体之仓之梦 | 欧美日韩在线观看精品 | 小兰被扒开内裤露出p | 日本国产在线视频 | 爱色v| 手机在线伦理片 | 国产精品原创视频 | 热99在线视频 | 欧美一级h | 丰腴尤物贵妇浪荡小说 | 九九九九九九 | 美女又爽又黄免费 | 国产精品毛片久久久久久久 | 99r在线播放 | 成人精品视频一区二区在线 | 狠狠婷婷综合缴情亚洲 | 日本性生活免费看 | 免费观看二十女人一摸是水 | h版欧美大片免费观看 | chinese特色video|