91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

基于JavaMail實現郵件發送

發布時間:2020-09-07 17:09:23 來源:腳本之家 閱讀:183 作者:玩命丶DAN 欄目:編程語言

通過javamail 實現發送郵件,供大家參考,具體內容如下

注意:服務器有些端口是沒有開放的 需要去開放端口。 有些郵箱是需要開啟對應授權服務的。

1.maven依賴:

<!-- https://mvnrepository.com/artifact/javax.mail/javax.mail-api --> 
<dependency >  
  <groupId >javax.mail </groupId >  
  <artifactId >mail </artifactId >  
  <version >1.4.5 </version >  
</dependency >  
<dependency >  
  <groupId >com.sun.mail </groupId >  
  <artifactId >javax.mail </artifactId >  
  </dependency >  

2.新建個實體類 用來保存信息

import java.util.Properties; 
public class MailSenderInfo { 
   // 發送郵件的服務器的IP(或主機地址) 
   private String mailServerHost; 
   // 發送郵件的服務器的端口 
   private String mailServerPort; 
   // 發件人郵箱地址 
   private String fromAddress; 
   // 收件人郵箱地址 
   private String toAddress; 
   // 登陸郵件發送服務器的用戶名 
   private String userName; 
   // 登陸郵件發送服務器的密碼 
   private String password; 
   // 是否需要身份驗證 
   private boolean validate = true; 
   // 郵件主題 
   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); 
   //設置是否安全驗證,默認為false,一般情況都設置為true 
   p.put("mail.smtp.auth", "true");  
   p.put("mail.smtp.starttls.enable","true");  
   p.put("mail.smtp.EnableSSL.enable","true"); 
   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; 
   } 
} 

3.創建一個驗證器

import javax.mail.Authenticator; 
import javax.mail.PasswordAuthentication; 
 
/** 
 * 郵件用戶名和密碼認證器 
 */ 
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); 
   } 
} 

4.在調用的地方給實體類賦值

private void email(HttpSession session, String email) { 
    // 設置郵件服務器信息 
    MailSenderInfo mailInfo = new MailSenderInfo(); 
    mailInfo.setMailServerHost("smtp-mail.outlook.com");// 發送郵件的服務器的IP(或主機地址) 
    mailInfo.setMailServerPort("587");//有些端口在服務器上是沒開放的 這里需要注意下 
    mailInfo.setValidate(true); 
    // 郵箱用戶名(根據自己情況設置) 這里可以多弄幾個郵箱過來 避免郵箱賬號需要驗證 或者被當成垃圾郵件封號 A失敗就用B 
    mailInfo.setUserName("此處填寫跟上面發送郵件服務器對應的郵箱"); 
    // 郵箱密碼(根據自己情況設置) 
    mailInfo.setPassword("這是你的密碼"); 
    // 發件人郵箱(根據自己情況設置,如果你沒對郵箱進行特別設置,應該和郵箱用戶名一致) 
    mailInfo.setFromAddress("這里跟上面一樣"); 
    // 收件人郵箱(根據自己情況設置) 
    mailInfo.setToAddress(email); 
    // 郵件標題 
    mailInfo.setSubject("我是標題"); 
    // 郵件內容 
    mailInfo.setContent("我是內容,正經的內容不是垃圾郵箱"); 
    // 發送郵件 
    SimpleMailSender sms = new SimpleMailSender(); 
    // 發送文體格式 
    sms.sendTextMail(mailInfo); 
  } 

5.這里才是真正的發送郵件

public class SimpleMailSender { 
  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); 
      mailMessage.saveChanges(); 
      // 發送郵件 
      Transport.send(mailMessage); 
      return true; 
     } catch (MessagingException ex) { 
      ex.printStackTrace(); 
     } 
     return false; 
     } 
} 

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

海淀区| 宁德市| 兴海县| 界首市| 甘谷县| 南涧| 宁夏| 九江市| 新晃| 聂拉木县| 姚安县| 齐河县| 包头市| 华蓥市| 绥宁县| 静海县| 千阳县| 天峨县| 枣强县| 巴东县| 平罗县| 鄂伦春自治旗| 洱源县| 津南区| 桓台县| 天等县| 比如县| 巩留县| 莎车县| 平谷区| 吉隆县| 宁津县| 休宁县| 宝清县| 上栗县| 临安市| 海城市| 合阳县| 松溪县| 霍州市| 理塘县|