SpringBoot Send e-mail template thymeleaf

1, application.yml profile

spring:
    mail:
        host: smtp.qq.com
        username: xxx@qq.com
        password: 授权码

2, specific implementation steps

import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;

@Service
public class SendEmailServiceImpl implements ISendEmailService {

    @Value("${spring.mail.username}")
    private String sendName;  //发送者

    @Autowired
    JavaMailSender mailSender;

    @Autowired
    TemplateEngine engine;  //模板引擎

    @Override
    public String sendEmailWithTemplate(String to, String subject, String templateName, User user) {
        try {
        	//创建一个mime类型的消息体
            MimeMessage mimeMessage = mailSender.createMimeMessage();
            MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
            //设置邮件的四要素:发送人、接收者、主题、内容
            helper.setFrom(sendName);
            helper.setTo(to);
            helper.setSubject(subject);

            Context context = new Context();
            //给模板传递部分指定数据
            context.setVariable("user", user);
            String content = engine.process(templateName, context);

            helper.setText(content, true);
            mailSender.send(mimeMessage);
            return "发送成功";
        } catch (MessagingException e) {
            e.printStackTrace();
            return "发送失败:"+ e.getMessage();
        }
    }
}

3, can be called directly in the controller

Published 141 original articles · won praise 131 · views 210 000 +

Guess you like

Origin blog.csdn.net/qq_41621362/article/details/104321204