欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java實(shí)現(xiàn)郵箱發(fā)送功能實(shí)例(阿里云郵箱推送)

 更新時(shí)間:2020年09月20日 14:52:07   作者:bitQian  
這篇文章主要給大家介紹了關(guān)于Java實(shí)現(xiàn)郵箱發(fā)送功能的相關(guān)資料,利用阿里云郵箱推送,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

前言

綁定阿里云域名,創(chuàng)建域名賬戶,并配置解析域名賬戶,獲得發(fā)送郵箱的權(quán)限,上限兩百封,超出要¥…

阿里云郵件推送控制臺(tái)

https://www.aliyun.com/product/directmail

申請(qǐng)郵箱并解析域名

https://yq.aliyun.com/articles/707997

1. 郵箱信息實(shí)體類

package cn.bitqian.mail.test;

/**
 * 郵件內(nèi)容實(shí)體類
 * @author echo lovely
 * @date 2020/9/18 15:47
 */
public class MailInfo {

  // 發(fā)件人賬戶
  private String sendEmailAccount;

  // 發(fā)件人密碼
  private String sendEmailPassword;

  // 收件人賬戶
  private String receiveMailAccount;

  // 發(fā)送人姓名
  private String sendPersonName;

  // 收件人姓名
  private String receivePersonName;

  // 郵件標(biāo)題
  private String mailTitle;

  // 郵件正文
  private String mailContent;

  public MailInfo(String sendEmailAccount, String sendEmailPassword, String receiveMailAccount,
          String sendPersonName, String receivePersonName,
          String mailTitle, String mailContent) {
    this.sendEmailAccount = sendEmailAccount;
    this.sendEmailPassword = sendEmailPassword;
    this.receiveMailAccount = receiveMailAccount;
    this.sendPersonName = sendPersonName;
    this.receivePersonName = receivePersonName;
    this.mailTitle = mailTitle;
    this.mailContent = mailContent;
  }

  public String getSendEmailAccount() {
    return sendEmailAccount;
  }

  public void setSendEmailAccount(String sendEmailAccount) {
    this.sendEmailAccount = sendEmailAccount;
  }

  public String getSendEmailPassword() {
    return sendEmailPassword;
  }

  public void setSendEmailPassword(String sendEmailPassword) {
    this.sendEmailPassword = sendEmailPassword;
  }

  public String getReceiveMailAccount() {
    return receiveMailAccount;
  }

  public void setReceiveMailAccount(String receiveMailAccount) {
    this.receiveMailAccount = receiveMailAccount;
  }

  public String getMailTitle() {
    return mailTitle;
  }

  public void setMailTitle(String mailTitle) {
    this.mailTitle = mailTitle;
  }

  public String getMailContent() {
    return mailContent;
  }

  public void setMailContent(String mailContent) {
    this.mailContent = mailContent;
  }

  public String getSendPersonName() {
    return sendPersonName;
  }

  public void setSendPersonName(String sendPersonName) {
    this.sendPersonName = sendPersonName;
  }

  public String getReceivePersonName() {
    return receivePersonName;
  }

  public void setReceivePersonName(String receivePersonName) {
    this.receivePersonName = receivePersonName;
  }
}

2. jar包依賴

 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
 </dependency>

 <!-- mail dependency -->
 <dependency>
  <groupId>com.sun.mail</groupId>
  <artifactId>javax.mail</artifactId>
  <version>1.6.2</version>
 </dependency>

3. 發(fā)送郵箱實(shí)現(xiàn)

注意:

 1. 更改下面的屬性,與實(shí)體類對(duì)應(yīng)

代碼實(shí)現(xiàn)

package cn.bitqian.mail.test;

import org.junit.Test;

import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;


/**
 * 郵件發(fā)送工具類
 * @author echo lovely
 * @date 2020/9/18 15:54
 */
public class MailSendUtils {

  // 郵箱smtp協(xié)議 這里是使用阿里云的
  public static final String myEmailSMTPHost = "smtpdm.aliyun.com";

  @Test
  public void test() {
    MailInfo mailInfo = new MailInfo("控制臺(tái)所綁定的郵箱賬戶名",
        "綁定賬戶郵箱密碼",
        "收件人郵箱名", "發(fā)件人姓名",
        "收件人姓名", "郵箱標(biāo)題", "郵箱內(nèi)容");
    try {
      sendEmail(mailInfo);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  public void sendEmail(MailInfo mailInfo) throws Exception {

    // 1. 創(chuàng)建參數(shù)配置, 用于連接郵件服務(wù)器的參數(shù)配置
    Properties props = new Properties();          // 參數(shù)配置
    props.setProperty("mail.transport.protocol", "smtp");  // 使用的協(xié)議(JavaMail規(guī)范要求)
    props.setProperty("mail.smtp.host", myEmailSMTPHost);  // 發(fā)件人的郵箱的 SMTP 服務(wù)器地址
    props.setProperty("mail.smtp.auth", "true");      // 需要請(qǐng)求認(rèn)證

    // 2. 根據(jù)配置創(chuàng)建會(huì)話對(duì)象, 用于和郵件服務(wù)器交互
    Session session = Session.getInstance(props);
    session.setDebug(true);                 // 設(shè)置為debug模式, 可以查看詳細(xì)的發(fā)送 log

    // 3. 創(chuàng)建一封郵件
    MimeMessage message = new MailSendUtils().createMimeMessage(session, mailInfo);

    // 4. 根據(jù) Session 獲取郵件傳輸對(duì)象
    Transport transport = session.getTransport();

    // 5. 使用 郵箱賬號(hào) 和 密碼 連接郵件服務(wù)器, 這里認(rèn)證的郵箱必須與 message 中的發(fā)件人郵箱一致, 否則報(bào)錯(cuò)
    transport.connect(mailInfo.getSendEmailAccount(), mailInfo.getSendEmailPassword());

    // 6. 發(fā)送郵件, 發(fā)到所有的收件地址, message.getAllRecipients() 獲取到的是在創(chuàng)建郵件對(duì)象時(shí)添加的所有收件人, 抄送人, 密送人
    transport.sendMessage(message, message.getAllRecipients());

    // 7. 關(guān)閉連接
    transport.close();
  }

	
  public MimeMessage createMimeMessage(Session session, MailInfo mailInfo) throws Exception {
    // 1. 創(chuàng)建一封郵件
    MimeMessage message = new MimeMessage(session);

    // 2. From: 發(fā)件人(昵稱有廣告嫌疑,避免被郵件服務(wù)器誤認(rèn)為是濫發(fā)廣告以至返回失敗,請(qǐng)修改昵稱)
    message.setFrom(new InternetAddress(mailInfo.getSendEmailAccount(), mailInfo.getSendPersonName(), "UTF-8"));

    // 3. To: 收件人(可以增加多個(gè)收件人、抄送、密送)
    message.setRecipient(MimeMessage.RecipientType.TO,
        new InternetAddress(mailInfo.getReceiveMailAccount(), mailInfo.getReceivePersonName(), "UTF-8"));

    // 4. Subject: 郵件主題(標(biāo)題有廣告嫌疑,避免被郵件服務(wù)器誤認(rèn)為是濫發(fā)廣告以至返回失敗,請(qǐng)修改標(biāo)題)
    message.setSubject(mailInfo.getMailTitle(), "UTF-8");

    // 5. Content: 郵件正文(可以使用html標(biāo)簽)(內(nèi)容有廣告嫌疑,避免被郵件服務(wù)器誤認(rèn)為是濫發(fā)廣告以至返回失敗,請(qǐng)修改發(fā)送內(nèi)容)
    message.setContent(mailInfo.getMailContent(), "text/html;charset=UTF-8");

    // 6. 設(shè)置發(fā)件時(shí)間
    message.setSentDate(new Date());

    // 7. 保存設(shè)置
    message.saveChanges();

    return message;
  }

}


總結(jié)

到此這篇關(guān)于Java實(shí)現(xiàn)郵箱發(fā)送功能(阿里云郵箱推送)的文章就介紹到這了,更多相關(guān)Java郵箱發(fā)送(阿里云郵箱推送)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論