spring 如何在Thymeleaf中使用javax邮件

i86rm4rw  于 2023-04-10  发布在  Spring
关注(0)|答案(1)|浏览(76)

我已经搜索了很多,但没有找到任何答案,使用thymeleaf模板与javax.mail每个例子是使用spring-boot-starter-mail
你们谁有解决办法吗
这是我使用的代码:

package com.journaldev.mail;

import java.util.Properties;

import javax.mail.Session;

public class SimpleEmail {
    
    public static void main(String[] args) {
        
        System.out.println("SimpleEmail Start");
        
        String smtpHostServer = "smtp.example.com";
        String emailID = "email_me@example.com";
        
        Properties props = System.getProperties();

        props.put("mail.smtp.host", smtpHostServer);

        Session session = Session.getInstance(props, null);
        
        EmailUtil.sendEmail(session, emailID,"SimpleEmail Testing Subject", "SimpleEmail Testing Body");
    }

}
smdnsysy

smdnsysy1#

import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context;
import org.thymeleaf.templateresolver.ClassLoaderTemplateResolver;

public class ThymeleafEmail {

  public static void main(String[] args) throws MessagingException {

    // Set mail properties
    Properties props = new Properties();
    props.put("mail.smtp.host", "smtp.gmail.com");
    props.put("mail.smtp.port", "587");
    props.put("mail.smtp.auth", "true");
    props.put("mail.smtp.starttls.enable", "true");

    // Get the Session object
    Session session = Session.getDefaultInstance(props);

    // Prepare the Thymeleaf template
    ClassLoaderTemplateResolver resolver = new ClassLoaderTemplateResolver();
    resolver.setTemplateMode("HTML");
    resolver.setSuffix(".html");

    TemplateEngine templateEngine = new TemplateEngine();
    templateEngine.setTemplateResolver(resolver);

    Context context = new Context();
    context.setVariable("name", "John Doe");

    String processedTemplate = templateEngine.process("email_template", context);

    // Create a message
    Message message = new MimeMessage(session);
    message.setFrom(new InternetAddress("from@example.com"));
    message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("to@example.com"));
    message.setSubject("Test email with Thymeleaf template");
    message.setContent(processedTemplate, "text/html");

    // Send the message
    Transport.send(message);

    System.out.println("Email sent successfully!");
  }
}

相关问题