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

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

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java實現郵箱發送功能實例(阿里云郵箱推送)

Java實現郵箱發送功能實例(阿里云郵箱推送)

2020-09-21 00:25bitQian Java教程

這篇文章主要給大家介紹了關于Java實現郵箱發送功能的相關資料,利用阿里云郵箱推送,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

前言

綁定阿里云域名,創建域名賬戶,并配置解析域名賬戶,獲得發送郵箱的權限,上限兩百封,超出要¥…

阿里云郵件推送控制臺

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

申請郵箱并解析域名

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

1. 郵箱信息實體類

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package cn.bitqian.mail.test;
 
/**
 * 郵件內容實體類
 * @author echo lovely
 * @date 2020/9/18 15:47
 */
public class MailInfo {
 
  // 發件人賬戶
  private String sendEmailAccount;
 
  // 發件人密碼
  private String sendEmailPassword;
 
  // 收件人賬戶
  private String receiveMailAccount;
 
  // 發送人姓名
  private String sendPersonName;
 
  // 收件人姓名
  private String receivePersonName;
 
  // 郵件標題
  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包依賴

?
1
2
3
4
5
6
7
8
9
10
11
12
13
<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. 發送郵箱實現

注意:

 1. 更改下面的屬性,與實體類對應

Java實現郵箱發送功能實例(阿里云郵箱推送)

代碼實現

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
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;
 
 
/**
 * 郵件發送工具類
 * @author echo lovely
 * @date 2020/9/18 15:54
 */
public class MailSendUtils {
 
  // 郵箱smtp協議 這里是使用阿里云的
  public static final String myEmailSMTPHost = "smtpdm.aliyun.com";
 
  @Test
  public void test() {
    MailInfo mailInfo = new MailInfo("控制臺所綁定的郵箱賬戶名",
        "綁定賬戶郵箱密碼",
        "收件人郵箱名", "發件人姓名",
        "收件人姓名", "郵箱標題", "郵箱內容");
    try {
      sendEmail(mailInfo);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
 
  public void sendEmail(MailInfo mailInfo) throws Exception {
 
    // 1. 創建參數配置, 用于連接郵件服務器的參數配置
    Properties props = new Properties();          // 參數配置
    props.setProperty("mail.transport.protocol", "smtp");  // 使用的協議(JavaMail規范要求)
    props.setProperty("mail.smtp.host", myEmailSMTPHost);  // 發件人的郵箱的 SMTP 服務器地址
    props.setProperty("mail.smtp.auth", "true");      // 需要請求認證
 
    // 2. 根據配置創建會話對象, 用于和郵件服務器交互
    Session session = Session.getInstance(props);
    session.setDebug(true);                 // 設置為debug模式, 可以查看詳細的發送 log
 
    // 3. 創建一封郵件
    MimeMessage message = new MailSendUtils().createMimeMessage(session, mailInfo);
 
    // 4. 根據 Session 獲取郵件傳輸對象
    Transport transport = session.getTransport();
 
    // 5. 使用 郵箱賬號 和 密碼 連接郵件服務器, 這里認證的郵箱必須與 message 中的發件人郵箱一致, 否則報錯
    transport.connect(mailInfo.getSendEmailAccount(), mailInfo.getSendEmailPassword());
 
    // 6. 發送郵件, 發到所有的收件地址, message.getAllRecipients() 獲取到的是在創建郵件對象時添加的所有收件人, 抄送人, 密送人
    transport.sendMessage(message, message.getAllRecipients());
 
    // 7. 關閉連接
    transport.close();
  }
 
    
  public MimeMessage createMimeMessage(Session session, MailInfo mailInfo) throws Exception {
    // 1. 創建一封郵件
    MimeMessage message = new MimeMessage(session);
 
    // 2. From: 發件人(昵稱有廣告嫌疑,避免被郵件服務器誤認為是濫發廣告以至返回失敗,請修改昵稱)
    message.setFrom(new InternetAddress(mailInfo.getSendEmailAccount(), mailInfo.getSendPersonName(), "UTF-8"));
 
    // 3. To: 收件人(可以增加多個收件人、抄送、密送)
    message.setRecipient(MimeMessage.RecipientType.TO,
        new InternetAddress(mailInfo.getReceiveMailAccount(), mailInfo.getReceivePersonName(), "UTF-8"));
 
    // 4. Subject: 郵件主題(標題有廣告嫌疑,避免被郵件服務器誤認為是濫發廣告以至返回失敗,請修改標題)
    message.setSubject(mailInfo.getMailTitle(), "UTF-8");
 
    // 5. Content: 郵件正文(可以使用html標簽)(內容有廣告嫌疑,避免被郵件服務器誤認為是濫發廣告以至返回失敗,請修改發送內容)
    message.setContent(mailInfo.getMailContent(), "text/html;charset=UTF-8");
 
    // 6. 設置發件時間
    message.setSentDate(new Date());
 
    // 7. 保存設置
    message.saveChanges();
 
    return message;
  }
 
}

總結

到此這篇關于Java實現郵箱發送功能(阿里云郵箱推送)的文章就介紹到這了,更多相關Java郵箱發送(阿里云郵箱推送)內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/qq_44783283/article/details/108669051

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 无颜之月全集免费观看 | 黑人又大又硬又粗再深一点 | 青草草视频在线观看 | 久久精品热只有精品 | 日韩在线 在线播放 | www.麻豆视频| 欧美一级欧美一级高清 | 91制片厂制作果冻传媒破解 | 9色视频在线观看 | 99久久伊人精品波多野结衣 | 日本在线观看www鲁啊鲁视频 | 九九99香蕉在线视频免费 | 国产成人精品一区二三区在线观看 | 涩涩屋视频在线观看 | 白丝萝莉h| 91久久精品国产一区二区 | 亚洲视频一区在线播放 | 欧美人妖另类性hd | 亚洲精品国产在线网站 | 日本特黄一级午夜剧场毛片 | 精品国产成a人在线观看 | 国产精品久久免费观看 | 哇嘎在线精品视频在线观看 | 欧美美女一区二区三区 | 国产成人啪精品午夜在线播放 | 精品国产在线观看 | 久久国产香蕉 | 成人网视频免费播放 | 国产高清视频 | 91热爆在线 | tube日本高清老少配 | 日本午夜小视频 | 日韩乱淫 | 亚洲第一永久色 | 国产精品最新资源网 | 日韩性生活片 | 国产一区二区免费视频 | 日韩在线视频免费不卡一区 | 2019nv天堂香蕉在线观看 | 美女的隐私脱裤子无遮挡 | 久久亚洲国产成人影院 |