1、pom,xml
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
2 、properties.ini
#默認的smtp域名
smtpServer = smtp.mxhichina.com
# 端口:非加密25,ssl加密465
port= 465
#阿里郵箱賬號
fromUser [email protected]
#郵箱密碼
fromUserPassword= ****
3.實體類
public class EmailInfo {
private String smtpServer;// SMTP服務器地址
private String port; // 端口
private String fromUser;// 登錄SMTP服務器的用戶名,發送人郵箱地址
private String fromUserPassword;// 登錄SMTP服務器的密碼
private String toUser; // 收件人
private String subject; // 郵件主題
private String content; // 郵件正文
public EmailInfo() { }
public EmailInfo(String toUser, String subject, String content) {
this.toUser = toUser;
this.subject = subject;
this.content = content;
this.smtpServer = PropKit.use("properties.ini").get("smtpServer");
this.port = PropKit.use("properties.ini").get("port");
this.fromUser = PropKit.use("properties.ini").get("fromUser");
this.fromUserPassword = PropKit.use("properties.ini").get("fromUserPassword");
}
}
4.郵箱發送工具類
public class EmaiSender {
public static void send(EmailInfo emailInfo){
try {
//設置SSL連接、郵件環境
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory";
Properties props = System.getProperties();
props.setProperty("mail.smtp.host", emailInfo.getSmtpServer());
props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY);
props.setProperty("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.port", emailInfo.getPort());
props.setProperty("mail.smtp.socketFactory.port", emailInfo.getPort());
props.setProperty("mail.smtp.auth", "true");
//建立郵件會話
Session session = Session.getDefaultInstance(props, new Authenticator() {
//身份認證
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(emailInfo.getFromUser(), emailInfo.getFromUserPassword());
}
});
//建立郵件對象
MimeMessage message = new MimeMessage(session);
//設置郵件的發件人、收件人、主題
message.setFrom(new InternetAddress(emailInfo.getFromUser()));
message.setRecipients(Message.RecipientType.TO, emailInfo.getToUser());
message.setSubject(emailInfo.getSubject());
//文本
Multipart multipart = new MimeMultipart();
// 創建一個包含HTML內容的MimeBodyPart
BodyPart html = new MimeBodyPart();
// 設置HTML內容
html.setContent(emailInfo.getContent(), "text/html; charset=utf-8");
multipart.addBodyPart(html);
// 將MiniMultipart對象設置爲郵件內容
message.setContent(multipart);
message.setSentDate(new Date());
message.saveChanges();
//發送郵件
Transport.send(message);
} catch (Exception e) {
System.out.println(e.toString());
}
}
}