SpringBoot Enviar correo plantilla thymeleaf

1, el perfil application.yml

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

2, medidas específicas de implementación

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, puede ser llamado directamente en el controlador

Publicados 141 artículos originales · ganado elogios 131 · vistas 210 000 +

Supongo que te gusta

Origin blog.csdn.net/qq_41621362/article/details/104321204
Recomendado
Clasificación