JAVA发送HTML邮件示例代码
在这个示例中,我们将使用 JavaMail API 和 Maven 工程,发送一封 HTML 格式的邮件。代码中会提供注释来解释实现的每个步骤。
引入第三方依赖
我们需要在 pom.xml
文件中引入 JavaMail API 的依赖,以及其它可能用到的库。以下是 pom.xml
文件的内容。
xml复制代码<project>
<dependencies>
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
</dependencies>
</project>
编写Java代码
首先我们需要创建一个 Java 类文件,并且导入所需的类和包。以下是完整的 Java 代码:
java复制代码import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
public class HtmlEmail {
// 邮件主题
private static final String SUBJECT = "测试邮件";
// 收件人邮箱
private static final String TO_EMAIL = "recipient@example.com";
// 发件人邮箱
private static final String FROM_EMAIL = "sender@example.com";
// 发件人邮箱密码(注意:这里的密码指的是授权码,而非邮箱登录密码)
private static final String PASSWORD = "password";
// 发件人昵称
private static final String NICKNAME = "发件人";
// 邮件内容(HTML)
private static final String CONTENT = "<p>这是一封测试邮件。</p>";
public static void main(String[] args) {
// 创建邮件发送会话
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.host", "smtp.example.com");
props.put("mail.smtp.port", "25");
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(FROM_EMAIL, PASSWORD);
}
});
try {
// 构造邮件消息
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(FROM_EMAIL, NICKNAME));
message.setRecipient(Message.RecipientType.TO, new InternetAddress(TO_EMAIL));
message.setSubject(SUBJECT);
message.setContent(CONTENT, "text/html;charset=utf-8");
// 发送邮件
Transport.send(message);
System.out.println("邮件发送成功!");
} catch (MessagingException e) {
System.out.println("邮件发送失败!");
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
System.out.println("不支持字符编码!");
e.printStackTrace();
}
}
}
代码解释
在代码中,我们首先定义了邮件的主题、收件人邮箱、发件人邮箱、发件人邮箱密码、发件人昵称和邮件内容。接着,我们创建了一个 Properties
对象来存储邮件发送相关的配置信息,如 SMTP 主机、SMTP 端口号等。然后,我们使用配置信息和发件人邮箱密码来创建一个邮件发送会话。通过会话,我们可以构造一封邮件消息,并设置邮件的各种属性,如发件人、收件人、主题、内容等。最后,我们调用 Transport.send()
方法来发送邮件。
注意事项
- 发送 HTML 格式的邮件需要在消息内容中指定 Content-Type 为 “text/html;charset=utf-8”。
- 邮箱授权码与登录密码不同,需要在邮箱中进行设置,具体操作可参考邮箱提供商的相关帮助文档。