激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 激情av在线 | 日本免费aaa观看 | 久久九九热re6这里有精品 | 久久久噜噜噜久久熟有声小说 | 日美黄色片 | 全免费午夜一级毛片真人 | 欧美日韩在线播放 | 国产激情网 | 午夜神马电影网 | 成年人高清视频在线观看 | 亚洲国产中文字幕 | 国产精品免费观在线 | 国产免费一区二区三区网站免费 | 中文字幕精品一区久久久久 | 国产在线一级视频 | 日本aⅴ在线 | 男男啪羞羞视频网站 | 欧美日韩在线视频观看 | 久色网站 | 日韩视频不卡 | av免费提供 | 亚洲乱操| 九九热在线免费观看视频 | 成人国产在线看 | 色av综合在线 | 日韩一级成人 | 成人在线观看免费爱爱 | 国产精品一区二区三区在线播放 | 伦理三区 | 久久久久久久久浪潮精品 | 欧美一级做一级爱a做片性 久久久资源网 | 欧美亚洲免费 | 精品国产一区二区三区四区阿崩 | 曰批全过程40分钟免费视频多人 | 操碰在线视频 | 黄色网址入口 | av电影免费播放 | 国产精品久久久久久久午夜片 | 久久久久久久久久久久99 | 亚洲精品 在线播放 | 奇米影视888狠狠狠777不卡 |