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

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

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驗證錯誤的問題,網上的解釋有很多,但我看見的只有一個。就是我的第三個類。你只要復制全了代碼,我想是不會有問題的。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 免费网站看v片在线成人国产系列 | 国产精品高清在线 | 午夜影院免费看 | 精品无码国产AV一区二区三区 | 青青青草国产 | 小早川怜子亚洲综合中文字幕 | 男女车车好快的车车免费网站 | 精品一区二区三区色花堂 | 女子监狱第二季在线观看免费完整版 | 国产精品日韩欧美在线 | 高清在线观看mv的网址免费 | 欧美伦乱| 欧美视频黑鬼大战白妞 | 高级黄色片 | 国产欧美日韩精品一区二区三区 | 大杳蕉在线影院在线播放 | 牛牛影院成人免费网页 | 国产精品激情综合久久 | 深夜福利在线播放 | 久久99re热在线播放7 | 欧美日韩国产另类一区二区三区 | 国产免费又粗又猛又爽视频国产 | 免费国产午夜高清在线视频 | 女人麻豆国产香蕉久久精品 | 91日本在线观看亚洲精品 | 国产午夜精品久久久久小说 | 白丝校花掀起短裙呻吟小说 | 草久网 | 九九99亚洲精品久久久久 | 网址在线观看你懂我意思吧免费的 | 大肥臀风间由美 中文字幕 大东北chinesexxxx露脸 | 情缘免费观看完整版 | 99在线观看国产 | 草莓视频在线免费观看 | 91东航翘臀女神在线播放 | 日本一区二区三区久久 | 久久机热免费视频 | 国产99在线观看 | 精品在线网站 | 雪恋电影完整版免费观看 | 欧美腐剧mm在线观看 |