springboot实现邮件功能:使用thymeleaf模板发送邮件
1.建springboot项目,导入依赖;application.properties配置文件,看
使用thymeleaf模板需要在application.properties添加:
# THYMELEAF (ThymeleafAutoConfiguration) spring.thymeleaf.check-template-location=true spring.thymeleaf.prefix=classpath:/templates/ spring.thymeleaf.excluded-view-names= # comma-separated list of view names that should be excluded from resolution spring.thymeleaf.view-names= # comma-separated list of view names that can be resolved spring.thymeleaf.suffix=.html spring.thymeleaf.mode=HTML5 spring.thymeleaf.encoding=UTF-8 spring.thymeleaf.content-type=text/html # ;charset=<encoding> is added如果不加,会报错。
2.编写服务接口,实现类:
/** * 邮件服务接口 * Created by ASUS on 2018/5/5 * * @Authod Grey Wolf */ public interface MailService { /** * 发送html格式的邮件 * @param to * @param subject * @param content */ void sendHtmlMail(String to,String subject,String content); }
/** * * 邮件服务类 * Created by ASUS on 2018/5/5 * * @Authod Grey Wolf */ @Service("mailService") public class MailServiceImpl implements MailService { @Autowired private JavaMailSender mailSender; @Value("${mail.fromMail.addr}") private String form; /** * 发送html格式的邮件 * @param to 接受者 * @param subject 主题 * @param content 内容 */ @Override public void sendHtmlMail(String to, String subject, String content) { MimeMessage message=mailSender.createMimeMessage(); try { //true表示需要创建一个multipart message MimeMessageHelper helper=new MimeMessageHelper(message,true); helper.setFrom(form); helper.setTo(form); helper.setSubject(subject); helper.setText(content,true); mailSender.send(message); System.out.println("html格式邮件发送成功"); }catch (Exception e){ System.out.println("html格式邮件发送失败"); } } }
3.编写测试类:
/** * 发送邮件测试类 * Created by ASUS on 2018/5/5 * * @Authod Grey Wolf */ @RunWith(SpringRunner.class) @SpringBootTest public class MailTest { @Autowired private MailService mailService; @Autowired private TemplateEngine templateEngine; @Value("${mail.fromMail.addr}") private String form; @Test public void sendTemplateMail() throws Exception{ //创建邮件正文 //是导这个包import org.thymeleaf.context.Context; Context context = new Context(); context.setVariable("username","Grey Wolf"); //获取thymeleaf的html模板 String emailContent= templateEngine.process("template", context); mailService.sendHtmlMail(form,"这是thymeleaf模板邮件",emailContent); } }
4.测试效果:
我的座右铭:不会,我可以学;落后,我可以追赶;跌倒,我可以站起来;我一定行。