一、前置需求
1、准备邮箱
2、登录授权码
qq邮箱在–>设置–>账号POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务
开启服务
二、发送邮件
1、简单邮件
包含邮件标题、邮件正文
2、引入mail启动器
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
3、mail参数配置
application.yml
mail:username: User@qq.com #填写邮箱地址password: 123456 #填写授权码host: smtp.qq.com #发送邮件的host
4、API
JavaMailSender:发送邮件的客户端
send(mail)
SimpleMailMessage:分装简单的邮件的Bean
setSubject(标题)
setText(正文)
setTo(收件地址)
setFrom(发件地址)
@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)