Java 邮箱模板 HTML

在开发应用程序中,经常需要发送邮件给用户。为了提高用户体验,我们可以使用邮件模板来美化邮件内容,并且通过 Java 代码动态生成邮件内容。本文将介绍如何在 Java 中使用邮件模板 HTML,以及如何通过代码示例实现。

什么是邮箱模板 HTML

邮箱模板 HTML 是一种预先定义好的 HTML 格式邮件内容,其中可以包含动态变量,如用户名称、日期、订单信息等。通过将模板与 Java 代码结合,我们可以根据需要动态生成邮件内容,并发送给用户。

创建邮件模板 HTML

首先,我们需要创建一个邮件模板 HTML 文件。可以使用任何文本编辑器来创建该文件,例如 Notepad++ 或者 Visual Studio Code。下面是一个简单的邮件模板 HTML 示例:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>订单确认</title>
</head>

<body>
    尊敬的 {{username}},您的订单已确认
    <p>订单编号:{{orderNumber}}</p>
    <p>订单金额:{{orderAmount}}</p>
    <p>订单日期:{{orderDate}}</p>
    <p>感谢您的购买!</p>
</body>

</html>

在上面的模板中,我们使用了双大括号 {{}} 来标识变量。例如,{{username}} 是一个动态变量,我们将通过 Java 代码替换它为用户的实际名称。

动态生成邮件内容

接下来,我们将学习如何使用 Java 代码动态生成邮件内容并发送。首先,我们需要引入 JavaMail API,该 API 提供了发送邮件所需的类和方法。可以通过 Maven 或者直接下载 jar 文件来导入该 API。

下面是一个使用 JavaMail API 发送邮件的示例代码:

import javax.mail.*;
import javax.mail.internet.*;
import java.util.*;

public class EmailSender {
    public static void main(String[] args) {
        final String username = "your-email@gmail.com";
        final String password = "your-password";

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

        Session session = Session.getInstance(props,
                new javax.mail.Authenticator() {
                    protected PasswordAuthentication getPasswordAuthentication() {
                        return new PasswordAuthentication(username, password);
                    }
                });

        try {
            Message message = new MimeMessage(session);
            message.setFrom(new InternetAddress("your-email@gmail.com"));
            message.setRecipients(Message.RecipientType.TO,
                    InternetAddress.parse("recipient-email@example.com"));
            message.setSubject("订单确认");
            message.setContent(generateEmailContent(), "text/html");

            Transport.send(message);

            System.out.println("邮件发送成功!");

        } catch (MessagingException e) {
            throw new RuntimeException(e);
        }
    }

    private static String generateEmailContent() {
        String username = "John Doe";
        String orderNumber = "123456789";
        String orderAmount = "$99.99";
        String orderDate = "2022-01-01";

        String emailTemplate = "<!DOCTYPE html>\n" +
                "<html>\n" +
                "\n" +
                "<head>\n" +
                "    <meta charset=\"UTF-8\">\n" +
                "    <title>订单确认</title>\n" +
                "</head>\n" +
                "\n" +
                "<body>\n" +
                "    尊敬的 " + username + ",您的订单已确认\n" +
                "    <p>订单编号:" + orderNumber + "</p>\n" +
                "    <p>订单金额:" + orderAmount + "</p>\n" +
                "    <p>订单日期:" + orderDate + "</p>\n" +
                "    <p>感谢您的购买!</p>\n" +
                "</body>\n" +
                "\n" +
                "</html>";

        return emailTemplate;
    }
}

在上面的代码中,我们首先设置了发件人的邮箱和密码。然后,通过配置 Properties 对象来设置 SMTP 服务器的主机和端口。接下来,我们创建一个 Session 对象,并通过传入邮箱和密码进行验证。

generateEmailContent 方法中,我们动态生成了邮件内容,包括用户名、订单编号、订单