SpringBoot QQ邮箱发送邮件实例代码

网友投稿 367 2022-09-05


SpringBoot QQ邮箱发送邮件实例代码

目录1.获取QQ邮箱授权码2.导入邮箱发送依赖启动器3.配置文件yml添加邮件服务配置4.编写接口IMailService5.编写实现MailServiceImpl6.Controller调用7.thymeleaf模板 mailTemplate.html总结

SpringBoot整合邮件任务(QQ邮箱发送)

1.获取QQ邮箱授权码

2.导入邮箱发送依赖启动器

使用定制邮件模板的方法实现通用邮件发送,Thymeleaf构建邮件模板需要一起导入依赖。

org.springframework.boot

spring-boot-starter-mail

org.springframework.boot

spring-boot-starter-thymeleaf

3.配置文件yml添加邮件服务配置

# Spring配置

spring:

mail:

host: smtp.qq.com

username: ********@qq.com

# password是第一步QQ邮箱开通的smtp服务后得到的客户端授权码

password: ******************

default-encoding: UTF-8

properties:

mail:

smtp:

auth: true

starttls:

enable: true

required: true

#thymeleaf模板引擎配置太简单,就不贴出来了

4.编写接口IMailService

public interface IMailService {

void sendHtmlMailThymeLeaf(String mailFrom, String mailFromNick, String mailTo, String cc, String subject, String content);

}

5.编写实现MailServiceImpl

@Service

public class MailServiceImpl implements IMailService {

/**

* javaMailSender是Spring Boot在MailSenderPropertiesConfiguration 类中配直好的,该类在 Mail

* 自动配置类 MailSenderAutoConfiguration 中导入 因此这里注入 JavaMailSender 就可以使用了

*/

@Autowired

private JavaMailSender mailSender;

@Override

public void sendHtmlMailThymeLeaf(String mailFrom, String mailFromNick, String mailTo, String cc, String subject, String content) {

MimeMessage mimeMessage = mailSender.createMimeMessage();

try {

MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);

mimeMessageHelper.setFrom(new InternetAddress(mailFromNick + " <" + mailFrom + ">"));

// 设置多个收件人

String[] toAddress = mailTo.split(",");

mimeMessageHelper.setTo(toAddress);

if (!StringUtils.isEmpty(cc)) {

mimeMessageHelper.setCc(cc);

}

mimeMessageHelper.setSubject(subject);

// 第二个参数为true表示邮件正文是html格式的,默认是false

mimeMessageHelper.setText(content, true);

mailSender.send(mimeMessage);

} catch (MessagingException e) {

System.out.println(e);

}

}

}

6.Controller调用

// 发件人要跟yml配置文件里填写的邮箱一致

String mailFrom = "******@qq.com";

// 收件人

String mailTo = "******@qq.com,******@qq.com";

// 抄送(可为空)

String cc = "******@qq.com";

// 注入mailService

@Autowired

private IMailService mailService;

// 注入TemplateEngine

@Autowired

TemplateEngine templateEngine;

@RequestMapping("/other/test")//请求路径

@ResponseBody

public void testMail() {

//注意1:这里我是查询对应的内容,使用富文本编辑器存储html标签的内容

Strategy strategy = strategyService.selectStrategyByStrategyId(Long.valueOf(1));

Context context = new Context(); // 导包是org.thymeleaf.context

//注意2:获取发送的内容传入thymeleaf模板中

context.setVariable("content", strategy.getStrategyContent());

String content = templateEngine.process("mafunzNilTemplate.html", context);

//System.out.println(content);

mailService.sendHtmlMailThymeLeaf(mailFrom, "定义发件人名字", mailTo, cc, "定义邮件标题", content);

System.out.println("邮件发送成功");

}

7.thymeleaf模板 mailTemplate.html

总结


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:【python/shell】list.sort()与ls | find 排序差异分析(.sort() python)
下一篇:Python学习笔记|面向对象的程序设计(python支持面向对象的编程技术)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~