多平台统一管理软件接口,如何实现多平台统一管理软件接口
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构建邮件模板需要一起导入依赖。
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~