1. 程式人生 > >Springboot 之 JavaMailSender傳送電子郵件

Springboot 之 JavaMailSender傳送電子郵件

本文章來自【知識林】

在很多網站系統應用中,電子郵件的傳送應該非常常見,如:驗證碼傳送、密碼找回郵件傳送、事件通知郵件傳送等。

下面簡單介紹一下在Springboot的開發中如何使用JavaMailSender傳送電子郵件。

引入Maven依賴包

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

使用163郵箱傳送郵件

  • 配置檔案
#JavaMailSender 郵件傳送的配置
#spring.mail.host=smtp.exmail.qq.com
spring.mail.host=smtp.163.com
spring.mail.username=username@163.com
spring.mail.password=your-password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail
.smtp.starttls.required=true

注意:這裡需要將[email protected]your-password修改成自己的163的郵箱地址和對應密碼

  • 簡潔郵件傳送
@RunWith(SpringRunner.class)
@SpringBootTest
@ActiveProfiles("163")
public class My163MailTest {

    @Autowired
    private JavaMailSender javaMailSender;

    @Value("${spring.mail.username}")
    private
String username; @Test public void testSendSimple() { SimpleMailMessage message = new SimpleMailMessage(); message.setFrom(username); message.setTo("[email protected]"); message.setSubject("標題:測試標題"); message.setText("測試內容部份"); javaMailSender.send(message); } }

注意:setFrom處必須填寫自己的郵箱地址,否則會報553錯誤,不過這裡使用了讀取配置檔案中的配置,則不用修改。

只需要使用@Autowiredprivate JavaMailSender javaMailSender;上即可通過依賴注入的方式創建出JavaMailSender的物件。

使用QQ郵箱傳送郵件

可能使用QQ郵箱傳送郵件的情況比較多(大家都在用),下面就個人理解做下簡單描述。

  • 配置檔案
#JavaMailSender 郵件傳送的配置
spring.mail.host=smtp.qq.com
spring.mail.username=393156105@qq.com
spring.mail.password=tdckceislhfibhbbb
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

注意:spring.mail.password處的值是需要在郵箱設定裡面生成的授權碼,這個不是真實的密碼。

  • 傳送簡潔郵件
@Autowired
private JavaMailSender javaMailSender;

@Value("${spring.mail.username}")
private String username;

@Test
public void testSendSimple() {
    SimpleMailMessage message = new SimpleMailMessage();
    message.setFrom(username);
    message.setTo("[email protected]");
    message.setSubject("標題:測試標題");
    message.setText("測試內容部份");
    javaMailSender.send(message);
}

注意:這個例子跟使用163來發送的郵件是一樣的效果,但是在使用QQ來發送郵件是可能會報handshake_failure相關的錯誤,這是由於認證失敗導致的,解決辦法:

  1. 下載1.7版本的JCE,點選這裡
  2. 將下載下來的zip檔案中的local_policy.jarUS_export_policy.jar複製到JDK安裝目錄下的\jre\lib\security目錄中,原本是存在這兩個檔案的,這裡需要替換下。

    • 傳送HTML格式的郵件
@Test
public void testSendHtml() {
    MimeMessage message = null;
    try {
        message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom(username);
        helper.setTo("[email protected]");
        helper.setSubject("標題:傳送Html內容");

        StringBuffer sb = new StringBuffer();
        sb.append("<h1>大標題-h1</h1>")
          .append("<p style='color:#F00'>紅色字</p>")
          .append("<p style='text-align:right'>右對齊</p>");
        helper.setText(sb.toString(), true);
    } catch (MessagingException e) {
        e.printStackTrace();
    }

    javaMailSender.send(message);
}

注意:這裡建立的是MimeMessageHelper,且在呼叫setText時需要在第二個引數傳入true,這樣才會使用HTML格式傳送郵件

  • 設定收件方顯示的名稱
@Test
public void testSendByName() {
    MimeMessage message = null;
    try {
        message = javaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true);
        helper.setFrom(new InternetAddress(username, "知識林", "UTF-8"));
        helper.setTo("[email protected]");
        helper.setSubject("標題:傳送Html內容");

        StringBuffer sb = new StringBuffer();
        sb.append("<h1>大標題-h1</h1>")
                .append("<p style='color:#F00'>紅色字</p>")
                .append("<p style='text-align:right'>右對齊</p>");
        helper.setText(sb.toString(), true);
    } catch (Exception e) {
        e.printStackTrace();
    }

    javaMailSender.send(message);
}

注意:與上一個例子基本一樣,只是將helper.setFrom(username);修改成helper.setFrom(new InternetAddress(username, "知識林", "UTF-8"));,這樣收件方顯示的名稱就是知識林(前提是收件方沒有存發件方郵件)。

本文章來自【知識林】

相關推薦

13.Springboot JavaMailSender傳送電子郵件

在很多網站系統應用中,電子郵件的傳送應該非常常見,如:驗證碼傳送、密碼找回郵件傳送、事件通知郵件傳送等。 下面簡單介紹一下在Springboot的開發中如何使用JavaMailSender傳送電子郵件。 引入Maven依賴包 <dependency> <groupId>or

Springboot JavaMailSender傳送電子郵件

本文章來自【知識林】 在很多網站系統應用中,電子郵件的傳送應該非常常見,如:驗證碼傳送、密碼找回郵件傳送、事件通知郵件傳送等。 下面簡單介紹一下在Springboot的開發中如何使用JavaMail

ActiveMQ與Spring的整合非同步傳送電子郵件

1、ActiveMQ與Spring整合,訊息生產方的程式碼       1.1    專案的目錄       1.2   config.properties  ## ActiveMQ Config activemq.brokerURL=tcp\://192.168.2.

C# 網路程式設計基於SMTP傳送電子郵件

        本文主要講述基於C#網路程式設計的傳送郵件的程式設計,郵件傳送功能是基於郵件協議的,常見的電子郵件協議有SMTP(簡單郵件傳輸協議)、POP3(郵局協議)、IMAP(Internet郵件訪問協議),文章主要參考周存傑的《C#網路程式設計例項教程》.這也是最後

springboot利用JavaMailSender傳送郵件

之前用javamaill的方式傳送郵件,比較繁瑣,現在利用spring-mail來發送郵件,非常簡單 1.引入pom依賴,分別是freemarker郵件模板和spring-maill依賴 <!-- Spring Boot Freemarker 依賴,傳送HTML格式

C#傳送電子郵件(SMTP)及outlook.com賬號概要

這是關於c#傳送電子郵件(SMTP)的技術筆記,以”簡報“形式呈現。 因為最後成功通過outlook.com傳送了郵件,所以,我覺得還是有必要 記錄一下其中的要點。 一、技術核心 .net Framework 提供的兩個類:SmtpClient和MailAdd

Android實現快速傳送電子郵件

最近有朋友有需求是通過apk傳送郵件,我心想這怎麼可以實現?然後就研究了一番,最後得出結論是可行的! 確實可以自己的手機上定義主題和內容或者附件,然後傳送給對應的郵箱!詳細步驟傾聽我一一道來 我們以A郵箱傳送郵件給B郵箱為例: 1 開啟A郵箱的POP3服務 每個郵箱都有POP3服

呼叫Mailgun API傳送電子郵件一例

Mailgun提供了免費的郵件傳送服務,適合拿來做通知提醒一類的服務。免費版預設支援每天傳送多達300封郵件,最多可以發10,000封。 註冊方法:訪問 https://www.mailgun.com/email-api , 點Sign Up Free 輸入基本資訊,包括要接收郵

net類庫中傳送電子郵件的方法總結

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

PHP 傳送電子郵件

PHP 傳送電子郵件 PHP 允許您從指令碼直接傳送電子郵件。 。。。。。。。。。。。。。 PHP mail() 函式 PHP mail() 函式用於從指令碼中傳送電子郵件。 語法:mail(to,subject,message,headers,parameters) to 必需。規定 email

tp5傳送電子郵件

一、開啟郵箱的SMTP服務 QQ郵箱設定方式: 點選設定: 點選賬戶 在最下面,有個開啟 點開啟會彈出個窗,上面有密碼,記下密碼 163郵箱設定方式: 其他郵箱都一樣,獲取授權碼就行 二、下載類庫檔案 https://gi

使用Java傳送電子郵件

所需jar包 <dependency> <groupId>javax.mail</groupId> <artifactId>javax.mail-api</artifactId

.NET 傳送電子郵件

static void Main(string[] args) { ///先引入 using System.Net.Mail; ///傳送郵件 using (MailMessage mailMessage = ne

使用SMTP傳送電子郵件

描述SMTP的基本操作,有如下常見的情景。假如Alice想給Bob傳送一封簡單的ASCII報文: 1)Alice啟動她的郵件代理伺服器並提供Bob的郵件地址(例如:***@163.com),撰寫郵件,通過使用者代理髮送該郵件。 2)Alice的使用者代理把報文傳送給Ali

vb.net 傳送電子郵件方法 無需改動 直接Ctrl C V

Public Function Emilsend(ByVal arrp As Array) As Boolean Dim tConsultname As String = G_objService.SB_MyTrim(arrp(0)) Di

使用Python傳送電子郵件

SMTP傳送郵件: 我這裡使用的qq郵箱伺服器,所以執行之前應先把qq郵箱中的相應服務開啟; 1.傳送文字郵件 #傳送文字郵件 import smtplib from email.mime.text import MIMEText from email.header

Servlet 傳送電子郵件

Servlet 傳送電子郵件 使用 Servlet 傳送一封電子郵件是很簡單的,但首先您必須在您的計算機上安裝 JavaMail API 和 Java Activation Framework)JAF)。 您可以從 Java 標準網站下載最新版本

PHP傳送電子郵件

今天學習了PHP的mail函式,並且利用它傳送傳送一些簡單點的郵件,下面 開始吧: 1、首先,應該配置自己的PHP檔案(也就是php.ini檔案)然後需要安裝sendmail 2、下載後將其解壓到任意一個目錄下面,我的是和php相關檔案放在一起了(自己建立一個資料夾sen

用flask開發個人部落格(24)—— flask中使用Flask_Mail傳送電子郵件

        flask中使用Flask-Mail提供對電子郵件的支援,下面將分步驟測試flask中傳送電子郵件的功能: 1 配置SMTP伺服器的資訊         我們需要藉助flask程式例項app的config屬性來配置電子郵件的SMTP伺服器資訊,其中主要的配置

如何用WinCC傳送電子郵件

  HwEMail是HwLib(慧蘭博)技術團隊開發的一款用於WinCC或者.Net的電子郵件控制元件。它可以嵌入到WinCC畫面中,通過簡單的設定即可將重要報警訊息或者事件傳送到指定的電子郵箱裡。HwEMail屬於HwLib訊息套件(目前包含微信、釘釘、MQTT、簡訊和電子郵件五種)中的一種。HwEMail