spring boot 发送邮件验证码

一、前置需求

1、准备邮箱

2、登录授权码

qq邮箱在-->设置-->账号POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

开启服务

二、发送邮件

1、简单邮件

包含邮件标题、邮件正文

2、引入mail启动器

xml 复制代码
        <dependency>
                <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

3、mail参数配置

application.yml

yml 复制代码
mail:
  username: User@qq.com				#填写邮箱地址
  password: 123456					#填写授权码
  host: smtp.qq.com					#发送邮件的host

4、API

JavaMailSender:发送邮件的客户端

send(mail)

SimpleMailMessage:分装简单的邮件的Bean

setSubject(标题)

setText(正文)

setTo(收件地址)

setFrom(发件地址)

csharp 复制代码
@Service
public class SendEmailCodeService {
    //发送邮件验证码
    public static void sendEmailCode(JavaMailSender mailSender, String email, String subject, String code) throws MailSendException {
        //TODO: 发送邮件验证码
        SimpleMailMessage message = new SimpleMailMessage(); //创建SimpleMailMessage对象
        message.setFrom("User@qq.com"); //设置发件人
        message.setSubject(subject); //设置邮件主题
        message.setText("您的验证码为:" + code); //设置邮件内容
        message.setTo(email); //设置收件人邮箱
        mailSender.send(message); //发送邮件
    }
}

我配置的是qq邮箱,发送邮件时报错:

经过查询:解决方法配置application.yml
发送邮件:530 Login fail. A secure connection is requiered(such as ssl)


发送成功:

三、复杂邮件

1、复杂邮件有更加丰富的内容,如:图片、链接、附件等

2、API

JavaMailSender:发送邮件的客户端

send(mail)

MimeMessage:封装复杂邮件的Bean

send.createMimeMessage()

MimeMessageHelper:设置复杂邮件的辅助工具

setSubject(标题)

setText(正文,escapeHtml)

setTo(收件地址)

setFrom(发件地址)

addAttachment(fileName,file)

相关推荐
小王子1024几秒前
Django模型迁移指南:从命令用法到最佳实践
数据库·mysql·django·迁移回滚
ffutop5 分钟前
剖析 GraalVM Native Image 技术
java
三口吃掉你9 分钟前
【IDEA】JavaWeb自定义servlet模板
java·servlet·intellij-idea
l_c-l-o-u-d_218 分钟前
第十九周-文档数据库MongoDB、消息队列和微服务
数据库·redis·mongodb
Shun_Tianyou23 分钟前
Python Day19 时间模块 和 json模块 及例题分析
java·服务器·前端
数据狐(DataFox)25 分钟前
大数据集分页优化:LIMIT OFFSET的替代方案
数据库·sql·oracle
颜挺锐32 分钟前
Java 课程,每天解读一个简单Java之水仙花数
java·开发语言
bigcarp1 小时前
MySql插入中文生僻字/Emoji报错django.db.utils.DataError: (1366, “Incorrect string value
数据库·mysql·django
2301_809561521 小时前
c++day5
java·c++·面试
青云交2 小时前
「源力觉醒 创作者计划」_文心大模型 4.5 开源 28 天:从车间轴承到山村课堂的 AI 突围
java·模型微调·工业质检·文心 4.5·开源 ai·中小企业 ai·乡村教育