使用SpringBoot發(fā)送郵件的方法詳解
第一步,導(dǎo)jar包
<!--Email-->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<!--Email-->第二步,申請email授權(quán)密碼
這里以163郵箱舉例:


第三步,編寫yml文件
spring:
mail:
host: smtp.163.com #固定寫死的 163郵箱
username: masiyi163163@163.com #剛剛生成授權(quán)碼的郵箱
password: NOTZSJISFIOOWDLNY #剛剛生成的授權(quán)碼
default-encoding: UTF-8第四步,編寫工具類
一個Java郵件工具類,使用Spring Boot和JavaMailSender實現(xiàn)了發(fā)送郵件的功能。該類使用了@Component注解,標(biāo)識為一個Spring Bean,可以被其他類依賴注入使用。通過@Autowired注解注入了JavaMailSender類,以便使用其提供的郵件發(fā)送功能。同時,通過@Value注解注入了配置文件中的發(fā)件人郵件地址,方便發(fā)送郵件時設(shè)置發(fā)件人。
該工具類提供了兩種發(fā)送郵件的方法,分別為簡單文本郵件和帶有附件的郵件。其中,簡單文本郵件使用了SimpleMailMessage類實現(xiàn),而帶有附件的郵件使用了MimeMessage和MimeMessageHelper類實現(xiàn)。同時,通過傳遞不同的參數(shù),實現(xiàn)了發(fā)送不同的郵件內(nèi)容和附件。
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.messaging.MessagingException;
import org.springframework.stereotype.Component;
import javax.mail.internet.MimeMessage;
import java.io.File;
/**
* @author MaSiyi
* @version 1.0.0 2021/11/20
* @since JDK 1.8.0
*/
@Component
public class EmailUtil {
@Autowired
private JavaMailSender javaMailSender;
@Value("${spring.mail.username}")
private String from;
/**
* 簡單文本郵件
* @param to 接收者郵件
* @param subject 郵件主題
* @param content 郵件內(nèi)容
*/
public void sendSimpleMail(String to, String subject, String content){
SimpleMailMessage message = new SimpleMailMessage();
message.setTo(to);
message.setSubject(subject);
message.setText(content);
message.setFrom(from);
javaMailSender.send(message);
}
/**
* 附件郵件
* @param to 接收者郵件
* @param subject 郵件主題
* @param content HTML內(nèi)容
* @param filePath 附件路徑
* @throws MessagingException
*/
public void sendAttachmentsMail(String to, String subject, String content,
String filePath) throws MessagingException {
try {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(content, true);
helper.setFrom(from);
FileSystemResource file = new FileSystemResource(new File(filePath));
String fileName = file.getFilename();
helper.addAttachment(fileName, file);
javaMailSender.send(mimeMessage);
} catch (javax.mail.MessagingException e) {
e.printStackTrace();
}
}
}
第五步,編寫controller類
一個郵件服務(wù)相關(guān)的控制器類EmailController,使用了SpringBoot框架中的@RestController注解來標(biāo)識它是一個Web API控制器類。同時,它還使用了@Api注解來標(biāo)識這是一個郵件服務(wù)的API,方便其他開發(fā)者對這個API進(jìn)行理解和使用。
這個控制器類中有兩個API,分別是sendSimpleMail和sendAttachmentsMail。這兩個API都是GET請求,并使用了@ApiOperation注解來描述它們的功能和參數(shù)。其中,sendSimpleMail方法調(diào)用了EmailUtil類中的sendSimpleMail方法,用于發(fā)送簡單郵件;sendAttachmentsMail方法調(diào)用了EmailUtil類中的sendAttachmentsMail方法,用于發(fā)送帶附件的郵件。
import com.wangfugui.apprentice.common.util.EmailUtil;
import com.wangfugui.apprentice.common.util.ResponseUtils;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author MaSiyi
* @version 1.0.0 2021/11/20
* @since JDK 1.8.0
*/
@Api(tags = "郵件服務(wù)")
@RestController
@RequestMapping("/email")
public class EmailController {
@Autowired
private EmailUtil emailUtil;
@GetMapping("/sendSimpleMail")
@ApiOperation("發(fā)送簡單郵件")
public ResponseUtils sendSimpleMail(String email,String subject,String content) {
emailUtil.sendSimpleMail(email,subject,content);
return ResponseUtils.success();
}
@GetMapping("/sendAttachmentsMail")
@ApiOperation("發(fā)送附件郵件")
public ResponseUtils sendAttachmentsMail(String email,String subject,String content,String filePath) {
emailUtil.sendAttachmentsMail(email, subject, content, filePath);
return ResponseUtils.success();
}
}
第六步,測試

查看郵箱

成功!!
這篇文章主要介紹了如何在Spring Boot項目中使用JavaMailSender發(fā)送郵件,包括導(dǎo)入所需的jar包、申請郵箱授權(quán)密碼、編寫配置文件、編寫JavaMailSender工具類和Controller類,最后演示了如何調(diào)用工具類發(fā)送簡單文本郵件和帶有附件的郵件。
好了,就是這么的簡單,完整代碼請移至SpringBoot+Email查看
以上就是使用SpringBoot發(fā)送郵件的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot發(fā)送郵件的資料請關(guān)注腳本之家其它相關(guān)文章!
- SpringBoot整合郵件發(fā)送的四種方法
- SpringBoot實現(xiàn)定時發(fā)送郵件的三種方法案例詳解
- Springboot發(fā)送郵件功能的實現(xiàn)詳解
- SpringBoot實現(xiàn)發(fā)送QQ郵件的示例代碼
- SpringBoot?Mail郵件任務(wù)詳情
- SpringBoot?集成短信和郵件的配置示例詳解
- SpringBoot實現(xiàn)郵件發(fā)送的示例代碼
- SpringBoot實現(xiàn)發(fā)送郵件、發(fā)送微信公眾號推送功能
- Spring?Boot整合郵箱發(fā)送郵件實例
- SpringBoot實現(xiàn)發(fā)送電子郵件
- SpringBoot整合JavaMail實現(xiàn)發(fā)郵件的項目實踐
相關(guān)文章
詳解springMVC兩種方式實現(xiàn)多文件上傳及效率比較
本篇文章介紹了springMVC兩種方式實現(xiàn)多文件上傳及效率比較。springMVC實現(xiàn)多文件上傳有兩種,一種是字節(jié)流的方式進(jìn)行文件上傳,另外一種是使用springMVC包裝好的解析器進(jìn)行上傳,有興趣的可以了解一下。2016-12-12
Java Fluent Mybatis實戰(zhàn)之構(gòu)建項目與代碼生成篇上
Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內(nèi)又以Mybatis用的多,基于mybatis上的增強(qiáng)框架,又有mybatis plus和TK mybatis等。今天我們介紹一個新的mybatis增強(qiáng)框架 fluent mybatis2021-10-10
Mybatis實戰(zhàn)教程之入門到精通(經(jīng)典)
MyBatis是支持普通SQL查詢,存儲過程和高級映射的優(yōu)秀持久層框架,通過本文給大家介紹Mybatis實戰(zhàn)教程之入門到精通,對mybatis實戰(zhàn)教程相關(guān)知識感興趣的朋友一起學(xué)習(xí)吧2016-01-01
詳解Spring boot Admin 使用eureka監(jiān)控服務(wù)
本篇文章主要介紹了詳解Spring boot Admin 使用eureka監(jiān)控服務(wù),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
java實現(xiàn)新浪微博Oauth接口發(fā)送圖片和文字的方法
這篇文章主要介紹了java實現(xiàn)新浪微博Oauth接口發(fā)送圖片和文字的方法,涉及java調(diào)用新浪微博Oauth接口的使用技巧,具有一定參考接借鑒價值,需要的朋友可以參考下2015-07-07
java實現(xiàn)python session功能代碼實例
這篇文章主要介紹了java實現(xiàn)python session功能代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-11-11
Installij IDEA install或clean項目的使用
這篇文章主要介紹了Installij IDEA install或clean項目的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08

