怎么用SpringBoot实现QQ邮箱发送邮件
怎么用SpringBoot实现QQ邮箱发送邮件
本篇内容主要讲解“怎么用SpringBoot实现QQ邮箱发送邮件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用SpringBoot实现QQ邮箱发送邮件”吧!
1.获取QQ邮箱授权码
2.导入邮箱发送依赖启动器
使用定制邮件模板的方法实现通用邮件发送,Thymeleaf构建邮件模板需要一起导入依赖。
<!--Mail--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency><!--thymeleaf模板依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency>
3.配置文件yml添加邮件服务配置
#Spring配置spring:mail:host:smtp.qq.comusername:********@qq.com#password是第一步QQ邮箱开通的smtp服务后得到的客户端授权码password:******************default-encoding:UTF-8properties:mail:smtp:auth:truestarttls:enable:truerequired:true#thymeleaf模板引擎配置太简单,就不贴出来了
4.编写接口IMailService
publicinterfaceIMailService{voidsendHtmlMailThymeLeaf(StringmailFrom,StringmailFromNick,StringmailTo,Stringcc,Stringsubject,Stringcontent);}
5.编写实现MailServiceImpl
@ServicepublicclassMailServiceImplimplementsIMailService{/***JavaMailSender是SpringBoot在MailSenderPropertiesConfiguration类中配直好的,该类在Mail*自动配置类MailSenderAutoConfiguration中导入因此这里注入JavaMailSender就可以使用了*/@AutowiredprivateJavaMailSendermailSender;@OverridepublicvoidsendHtmlMailThymeLeaf(StringmailFrom,StringmailFromNick,StringmailTo,Stringcc,Stringsubject,Stringcontent){MimeMessagemimeMessage=mailSender.createMimeMessage();try{MimeMessageHelpermimeMessageHelper=newMimeMessageHelper(mimeMessage,true);mimeMessageHelper.setFrom(newInternetAddress(mailFromNick+"<"+mailFrom+">"));//设置多个收件人String[]toAddress=mailTo.split(",");mimeMessageHelper.setTo(toAddress);if(!StringUtils.isEmpty(cc)){mimeMessageHelper.setCc(cc);}mimeMessageHelper.setSubject(subject);//第二个参数为true表示邮件正文是html格式的,默认是falsemimeMessageHelper.setText(content,true);mailSender.send(mimeMessage);}catch(MessagingExceptione){System.out.println(e);}}}
6.Controller调用
//发件人要跟yml配置文件里填写的邮箱一致StringmailFrom="******@qq.com";//收件人StringmailTo="******@qq.com,******@qq.com";//抄送(可为空)Stringcc="******@qq.com";//注入mailService@AutowiredprivateIMailServicemailService;//注入TemplateEngine@AutowiredTemplateEnginetemplateEngine;@RequestMapping("/other/test")//请求路径@ResponseBodypublicvoidtestMail(){//注意1:这里我是查询对应的内容,使用富文本编辑器存储html标签的内容Strategystrategy=strategyService.selectStrategyByStrategyId(Long.valueOf(1));Contextcontext=newContext();//导包是org.thymeleaf.context//注意2:获取发送的内容传入thymeleaf模板中context.setVariable("content",strategy.getStrategyContent());Stringcontent=templateEngine.process("mailTemplate.html",context);//System.out.println(content);mailService.sendHtmlMailThymeLeaf(mailFrom,"定义发件人名字",mailTo,cc,"定义邮件标题",content);System.out.println("邮件发送成功");}
7.thymeleaf模板 mailTemplate.html
<!DOCTYPEhtml><htmllang="en"xmlns:th="http://www.thymeleaf.org"><head><metacharset="UTF-8"><title>邮件发送</title></head><body><!--使用富文本框包含HTML标签使用th:utext标签会解析html,显示相应的效果--><divth:utext="${content}">Someescapedtext</div></body></html>
到此,相信大家对“怎么用SpringBoot实现QQ邮箱发送邮件”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
推荐阅读
-
springboot实现基于aop的切面日志
本文实例为大家分享了springboot实现基于aop的切面日志的具体代码,供大家参考,具体内容如下通过aop的切面方式实现日志...
-
SpringBoot定时任务功能怎么实现
-
SpringBoot中的@Import注解怎么使用
-
SpringBoot整合Lombok及常见问题怎么解决
-
springboot图片验证码功能模块怎么实现
-
Springboot+SpringSecurity怎么实现图片验证码登录
-
SpringBoot注解的知识点有哪些
SpringBoot注解的知识点有哪些这篇“SpringBoot注...
-
SpringBoot2.x中management.security.enabled=false无效怎么解决
-
springboot怎么禁用某项健康检查
springboot怎么禁用某项健康检查今天小编给大家分享一下sp...
-
SpringBoot2怎么自定义端点