本文讲述的是利用SpringBoot框架 以及QQ邮箱的smtp服务实现邮件的发送功能.
登录QQ邮箱 开启smtp服务.
首先登录QQ邮箱 点击设置
在邮箱设置里选择账户
下拉找到如下位置. 开启POP3/SMTP服务 这里可能需要验证手机号 按照提示进行操作即可.
开启成功后 复制好授权码待用.
创建SpringBoot项目
这里就正常创建SpringBoot项目即可 不需要勾选启动器.
(可以勾选mail启动器 如果这里勾选了 可以跳过引入依赖步骤)
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
修改SpringBoot配置文件
引入完成后,在SpringBoot的配置文件 application.properties文件中配置邮件的属性
//设置邮件默认字符格式
spring.mail.default-encoding=UTF-8
//设置邮件发送主机地址
spring.mail.host=smtp.qq.com
//设置邮件登录名(QQ通常为自己的QQ邮箱)
spring.mail.username=123456@qq.com
//设置授权码
spring.mail.password=aksldjakj
//设置邮件协议 smtp
spring.mail.protocol=smtp
编写邮件发送工具类
创建一个类 MailSendService
代码如下:
//注入容器
@Component
public class MailSendService {
//引入javaMailSender对象
@Resource
JavaMailSender javaMailSender;
//创建发送方法
public String send(){
/*创建简单邮件对象*/
SimpleMailMessage simpleMailMessage=new SimpleMailMessage();
/*设置发件人地址 此处要跟springboot配置文件中的username属性相同*/
simpleMailMessage.setFrom("123456@qq.com");
/*收件人地址*/
simpleMailMessage.setTo(("123789@qq.com"));
//设置邮件标题
simpleMailMessage.setSubject("邮件标题");
//设置邮件内容
simpleMailMessage.setText("邮件内容");
//发送邮件
javaMailSender.send(simpleMailMessage);
return "邮件发送成功";
}
}
这里代码是以简单邮件为例的 如果想要发送HTML代码邮件的话
就不能创建简单邮件对象了.而是创建高级邮件对象
//创建高级邮件对象
MimeMessage msg = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(msg,true);
//设置邮件主题
helper.setSubject("邮件主题");
//添加附件
helper.addAttachment("fujian.png",new File("文件路径"));
//设置邮件内容
helper.setText("邮件内容");
//设置邮件发送时间
helper.setSentDate(new Date());
//设置发件人 与配置文件application.properties的username保持一致.
helper.setFrom("123456@qq.com");
//收件人
helper.setTo("123789@qq.com");
javaMailSender.send(msg);
测试
编写完成后 我们就可以去测试类测试了
成功接收到邮件就没问题了.