Spring Boot實戰(zhàn)之發(fā)送郵件示例代碼
一、郵件服務簡介
郵件服務在互聯(lián)網(wǎng)早期就已經(jīng)出現(xiàn),如今已成為人們互聯(lián)網(wǎng)生活中必不可少的一項服務。那么郵件服務是怎么工作的呢?如下給出郵件發(fā)送與接收的典型過程:
1、發(fā)件人使用SMTP協(xié)議傳輸郵件到郵件服務器A;
2、郵件服務器A根據(jù)郵件中指定的接收者,投送郵件至相應的郵件服務器B;
3、收件人使用POP3協(xié)議從郵件服務器B接收郵件。
SMTP(Simple Mail Transfer Protocol)是電子郵件(email)傳輸?shù)幕ヂ?lián)網(wǎng)標準,定義在RFC5321,默認使用端口25;
POP3(Post Office Protocol - Version 3)主要用于支持使用客戶端遠程管理在服務器上的電子郵件。定義在RFC 1939,為POP協(xié)議的第三版(最新版)。
這兩個協(xié)議均屬于TCP/IP協(xié)議族的應用層協(xié)議,運行在TCP層之上。
我們?nèi)粘J瞻l(fā)郵件使用的客戶端、Web Mail的背后都在運行著這兩個協(xié)議,完成收發(fā)郵件的過程。而現(xiàn)在我們需要使用SMTP協(xié)議來把發(fā)送給用戶的郵件傳輸?shù)洁]件服務器。
從客戶端傳輸郵件到服務器需要雙方的配合,而規(guī)則就定義在SMTP協(xié)議中。我們現(xiàn)在需要做的是找一個SMTP服務器,再實現(xiàn)一個SMTP客戶端,然后讓客戶端發(fā)送郵件到服務器。
二、配置郵件服務器
本文使用126郵箱測試,在以下界面中開啟smtp服務器,設置授權(quán)碼,在后面代碼中會使用到

三、實現(xiàn)郵件客戶端
1)修改pom.xml,添加依賴庫
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
2)修改application.properties,添加郵箱配置
spring.mail.host=smtp.126.com spring.mail.username=****@126.com spring.mail.password=password #上面獲取設置的授權(quán)碼 spring.mail.default-encoding=UTF-8
3)新增MailController
package com.xiaofangtech.sunt.controller;
import javax.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.xiaofangtech.sunt.utils.ResultMsg;
import com.xiaofangtech.sunt.utils.ResultStatusCode;
@RestController
@RequestMapping("mail")
public class MailController {
@Autowired
JavaMailSender mailSender;
@RequestMapping("sendemail")
public Object sendEmail()
{
try
{
final MimeMessage mimeMessage = this.mailSender.createMimeMessage();
final MimeMessageHelper message = new MimeMessageHelper(mimeMessage);
message.setFrom("****@126.com");
message.setTo("****@example.com");
message.setSubject("測試郵件主題");
message.setText("測試郵件內(nèi)容");
this.mailSender.send(mimeMessage);
ResultMsg resultMsg = new ResultMsg(ResultStatusCode.OK.getErrcode(),
ResultStatusCode.OK.getErrmsg(), null);
return resultMsg;
}
catch(Exception ex)
{
ResultMsg resultMsg = new ResultMsg(ResultStatusCode.SYSTEM_ERR.getErrcode(),
ResultStatusCode.SYSTEM_ERR.getErrmsg(), null);
return resultMsg;
}
}
}
4)運行測試
瀏覽器中輸入
http://localhost:8080/mail/sendemail
查看郵箱可以收到剛發(fā)送的郵件

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
- SpringBoot使用FreeMarker模板發(fā)送郵件
- SpringBoot集成E-mail發(fā)送各種類型郵件
- SpringBoot實現(xiàn)發(fā)送郵件功能
- SpringBoot發(fā)送郵件功能 驗證碼5分鐘過期
- 基于SpringBoot實現(xiàn)發(fā)送帶附件的郵件
- Spring Boot整合郵件發(fā)送與注意事項
- Spring Boot中利用JavaMailSender發(fā)送郵件的方法示例(附源碼)
- Spring Boot實現(xiàn)郵件發(fā)送功能
- Springboot實現(xiàn)郵件發(fā)送功能
- SpringBoot實現(xiàn)郵件發(fā)送功能的姿勢分享
相關文章
IDEA在plugins里搜不到mybatisx插件的解決方法
本文主要介紹了IDEA在plugins里搜不到mybatisx插件的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2023-06-06
Java如何加載外部Jar的類并通過反射調(diào)用類的方法
這篇文章主要介紹了Java如何加載外部Jar的類并通過反射調(diào)用類的方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-06-06
JDBC+GUI實現(xiàn)簡單學生管理系統(tǒng)
這篇文章主要為大家詳細介紹了JDBC+GUI實現(xiàn)簡單學生管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-02-02
Spring Cloud Alibaba整合Sentinel的實現(xiàn)步驟
這篇文章主要介紹了Spring Cloud Alibaba整合Sentinel的實現(xiàn)步驟,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-10-10
MyBatisPlus的IService接口實現(xiàn)
MyBatisPlus是一個為MyBatis提供增強的工具,它通過IService接口簡化了數(shù)據(jù)庫的CRUD操作,IService接口封裝了一系列常用的數(shù)據(jù)操作方法,本文就來介紹一下,感興趣的可以了解一下2024-10-10
解決Maven項目中 Invalid bound statement 無效的綁定問題
這篇文章主要介紹了解決Maven項目中 Invalid bound statement 無效的綁定問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
使用Shiro實現(xiàn)登錄成功后跳轉(zhuǎn)到之前的頁面
這篇文章主要介紹了如何使用Shiro實現(xiàn)不同用戶登錄成功后跳轉(zhuǎn)到不同主頁,實現(xiàn)此功能目前比較好的方法是用ajax的方法登錄,第二種方法是把用戶未登錄前的url存在session中,需要的朋友可以參考下2015-07-07
idea maven編譯報錯Java heap space的解決方法
這篇文章主要為大家詳細介紹了idea maven編譯報錯Java heap space的相關解決方法,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下2025-04-04

