使用javamail需要先导入两个jar包
- activation.jar
- mail.jar
以下为两个jar包的maven依赖
<dependency>
<groupId>javax.activation</groupId>
<artifactId>activation</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
第一步:创建邮件服务器连接配置
// 邮件服务器连接配置
Properties properties = new Properties();
// 设置发送服务器
properties.setProperty("mail.host", "smtp.qq.com");
// 设置是否需要身份验证
properties.setProperty("mail.smtp.auth",
"true");
// 设置端口
properties.setProperty("mail.smtp.port", 465);
// 以下两个配置为,使用QQ邮件测试时需要使用
properties.setProperty("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.smtp.socketFactory.port", 465);
第二步:创建与邮件服务器连接的session
// EmailAuthenticator类为自己继承Authenticator类而实现的用户验证类,具体实现后文列出
Authenticator authenticator = new EmailAuthenticator("username", "password");
Session session = Session.getDefaultInstance(properties, authenticator);
// 在控制台中打印出session连接的信息
session.setDebug(true);
EmailAuthenticator的实现
// 自定义连接邮件服务器的用户认证类
public class EmailAuthenticator extends Authenticator {
String username;
String password;
public EmailAuthenticator(String username, String password) {
this.username = username;
this.password = password;
}
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
}
第三步:创建邮件
Message message = new MimeMessage(session);
// 设置发送地址
message.setFrom(new InternetAddress("发送人邮箱"));
// 设置收件地址
message.setRecipient(Message.RecipientType.TO, new InternetAddress("收件人邮箱"));
// 设置邮件主题
message.setSubject("测试邮件");
// 设置邮件内容
message.setContent("测试", "text/html;charset=UTF-8");
// 设置发送时间
Calendar calendar = Calendar.getInstance(Locale.CHINA);
Date date = calendar.getTime();
message.setSentDate(date);
第四步:发送邮件
Transport.send(message);