SpringBoot+Email發(fā)送郵件的實現(xiàn)示例
引言
郵件通知是現(xiàn)代應用中常見的一種通信方式,特別是在需要及時反饋、告警或重要事件通知的場景下。Spring Boot提供了簡單而強大的郵件發(fā)送功能,使得實現(xiàn)郵件通知變得輕而易舉。本文將研究如何在Spring Boot中使用JavaMailSender實現(xiàn)郵件發(fā)送,以構建一個可靠的通知體系。
使用場景舉例:
- 注冊驗證:在用戶注冊各種賬戶時,通過郵件發(fā)送驗證碼進行身份確認和賬戶激活。
- 網(wǎng)站營銷:向潛在客戶或已有用戶發(fā)送營銷信息或者廣告郵件。
- 身份安全驗證:在用戶修改密碼、解鎖賬戶等關鍵操作時,通過郵件發(fā)送安全驗證碼來增強賬戶的安全性。
普通文本郵件、HTML內(nèi)容板式郵件、包含靜態(tài)資源郵件以及帶附件郵件的發(fā)送:可以滿足不同類型郵件的發(fā)送需求。
步驟一:引入郵件發(fā)送依賴
在Spring Boot項目的pom.xml文件中引入郵件發(fā)送所需的依賴:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>步驟二:配置郵件發(fā)送參數(shù)
在application.properties或application.yml中配置郵件發(fā)送的相關參數(shù),包括郵件服務器主機、端口、賬戶信息等:
spring:
mail:
host: smtp.163.com
username: *****@163.com
password: *****
port: 25
步驟三:創(chuàng)建郵件發(fā)送服務
創(chuàng)建一個郵件發(fā)送的服務類,使用JavaMailSender進行郵件發(fā)送:
public interface SendMailService {
public String sendSimpleMail(String address, String subject, String body);
public String sendAttachmentMail(String address, String subject, String body, MultipartFile attach) throws MessagingException, IOException;
}@Service
public class SendMailServiceImpl implements SendMailService {
@Autowired
private JavaMailSender javaMailSender;
@Value("${spring.mail.username}")
private String account;
/**
* @param address 收件地址
* @param subject 標題
* @param body 正文
* @return
*/
@Override
public String sendSimpleMail(String address, String subject, String body) {
SimpleMailMessage smm = new SimpleMailMessage();
smm.setFrom(account);
smm.setTo(address);
smm.setSubject(subject);
smm.setText(body);
javaMailSender.send(smm);
return "發(fā)送成功";
}
/**
* @param address 收件地址
* @param subject 標題
* @param body 正文
* @param attach 附件
*/
@Override
public String sendAttachmentMail(String address, String subject, String body, MultipartFile attach) throws MessagingException, IOException {
MimeMessage mimeMailMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMailMessage, true);
mimeMessageHelper.setFrom(account);
mimeMessageHelper.setTo(new String[]{address});
mimeMessageHelper.setSubject(subject);
mimeMessageHelper.setText(body);
// 獲取附件的文件名和后綴名
String fileName = attach.getOriginalFilename();
String fileExtension = fileName.substring(fileName.lastIndexOf(".") + 1);
// 讀取附件內(nèi)容
byte[] bytes = attach.getBytes();
// 創(chuàng)建一個新的資源對象來存儲附件內(nèi)容
ByteArrayResource attachmentResource = new ByteArrayResource(bytes);
// 添加附件,使用完整的文件名(包括后綴名)
mimeMessageHelper.addAttachment(fileName, attachmentResource);
javaMailSender.send(mimeMailMessage);
return "發(fā)送成功";
}
}
步驟四:使用郵件發(fā)送服務
在需要發(fā)送郵件的地方,注入EmailService并調(diào)用相應的方法:
@RestController
public class EmailController {
@Autowired
private SendMailService sendMailService;
@RequestMapping("/sendMail")
public String sendMail(String address, String subject, String body) {
return sendMailService.sendSimpleMail(address, subject, body);
}
@RequestMapping("/sendMailWithAttachment")
public String sendMailWithAttachment(String address, String subject, String body, MultipartFile attach) throws IOException, MessagingException {
return sendMailService.sendAttachmentMail(address, subject, body, attach);
}
}測試結果


結語
通過本文的介紹,你已經(jīng)學到了如何在Spring Boot應用中使用JavaMailSender實現(xiàn)郵件發(fā)送功能。這個簡單而強大的功能可以應用于各種場景,如用戶注冊、密碼重置、異常通知等。通過配置郵件發(fā)送參數(shù)、創(chuàng)建郵件發(fā)送服務和使用郵件發(fā)送服務,你可以輕松構建一個可靠的郵件通知體系,為你的應用增加及時的通知和反饋機制。希望這篇博文能夠幫助你成功實現(xiàn)Spring Boot中的郵件發(fā)送功能。
到此這篇關于SpringBoot+Email發(fā)送郵件的實現(xiàn)示例的文章就介紹到這了,更多相關SpringBoot Email發(fā)送郵件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Java中線程狀態(tài)+線程安全問題+synchronized的用法詳解
這篇文章主要介紹了Java中線程狀態(tài)+線程安全問題+synchronized的用法詳解,本文結合示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-04-04
spring實現(xiàn)靜態(tài)注入(類或者屬性)操作示例
這篇文章主要為大家介紹了spring實現(xiàn)靜態(tài)注入(類或者屬性)操作示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-07-07

