Spring Boot学习笔记(十八)Spring Boot发送各种类型的邮件

本文详细介绍了如何使用Spring Boot发送不同类型的邮件,包括简单邮件、HTML邮件、图片邮件、带附件的邮件以及Thymeleaf模板邮件。通过讲解Spring Boot的`spring-boot-starter-mail` starter,阐述了JavaMailSender接口和MimeMessageHelper的使用,以及邮件协议(SMTP、POP3、IMAP)的基础知识。此外,还提到了邮件发送失败的处理策略,如重试机制和异步发送。
摘要由CSDN通过智能技术生成

Spring Boot 发送简单邮件、HTML5邮件、图片邮件、带附件的邮件以及thymeleaf模版邮件

spring-boot-starter-mail
  • 网站发送邮件最早使用 JavaMail相关 API 来写发送邮件的相关代码,后来 Spring 推出了 JavaMailSender 简化了邮件发送代码的编写。现在Spring Boot 在 JavaMailSender 的基础上又进行了封装,就有了现在的 spring-boot-starter-mail
  • Spring 的 JavaMailSenderImpl 提供了强大的邮件发送功能,可发送普通文本邮件、带附件邮件、HTML格式邮件、带图片邮件,设置发送内容编码格式、设置发送人的显示名称
JavaMail API 按功能可分为如下三大类:
  • Message 类 :创建和解析邮件的核心 API,用于创建一封邮件,可以设置发件人、收件人、邮件主题、正文信息、发送时间等信息
  • Transport 类:发送邮件的核心 API 类
  • Store 类:接收邮件的核心API类
邮件的相关协议
  • SMTP 协议:发送邮件协议
  • POP3 协议:获取邮件协议;
  • IMAP:接收信息的高级协议;
  • MIME:邮件拓展内容格式:信息格式,附件格式

图示互相发送邮件的过程
在这里插入图片描述

初始化项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我演示的是QQ邮箱,所以先把QQ邮箱的SMTP和POP3服务等开起来在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
记住这个授权码

项目结构

在这里插入图片描述
pom.xml导入以下依赖:

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

application.properties做如下配置,需要将 spring.mail.username 和 spring.mail.password 改成自己邮箱对应的登录名和是开启 POP3 之后设置的客户端授权密码

spring.mail.host=smtp.qq.com
spring.mail.username=你的QQ邮箱号@qq.com
spring.mail.password=刚刚的授权码
spring.mail.default-encoding=UTF-8

MailService.java

package wen.mail.service;

public interface MailService {

    public void sendSimpleMail(String to, String subject, String content);

    public void sendHtmlMail(String to, String subject, String content);

    public void sendAttachmentsMail(String to, String subject, String content, String filePath);

    public void sendInlineResourcesMail(String to, String subject, String content, String srcPath, String srcId);
}

实现类MailServiceImpl.java<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值