前言:本項目使用Eclipse+maven插件來構建
需要在pom.xml文件中加入對應的依賴包的配置:<!-- https://mvnrepository.com/artifact/com.sun.mail/javax.mail -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.springframework/spring-context-support -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.3.14.RELEASE</version>
</dependency>
一、發送郵件的步驟爲
(1).創建郵件發送器(需要發送人的郵件賬號、密碼、該賬戶的郵件服務器地址->如網易爲:smtp.163.com)
(2).編輯郵件的具體內容(分類如下)
①.純text文本文件
②.HTML格式的文件
③.帶附件的郵件(圖片、媒體文件、office文件)
(3).調用JavaMailSenderImpl類的對象裏面的send(郵件內容參數)方法來發送
①.郵件的內容參數支持的類型有:MimeMessages(簡單內容)、SimpleMailMessages(複雜內容)
二、代碼實現
(1).發送郵件者的信息封裝(這裏只封裝了必要的信息、若有其他需要則自行添加)
代碼:
//發送者的信息配置類
public class Sender {
//郵箱的用戶名
public String username="你的用戶名";
//郵箱的登錄密碼
public String password="你登錄的密碼";
//郵箱提供商的服務器地址
public String serverHost="smtp.163.com";
//端口號 默認爲25
public int port=25;
//郵件使用的協議
public String protocol="http";
//省略set/get
}
(2).創建郵件發送器
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
Sender sender=new Sender();//使用默認的初始信息
mailSender.setHost(sender.getServerHost());
mailSender.setUsername(sender.getUsername());
mailSender.setPassword(sender.getPassword());
mailSender.setProtocol(sender.getProtocol());
2.1).發送文本文件的內容編寫
SimpleMailMessage smm = new SimpleMailMessage();//用戶簡單郵件內容的信息編寫
// 設定郵件參數
smm.setFrom(sender.getUsername());//發送者的用戶名
smm.setTo("[email protected]");//接收者的郵箱地址
smm.setSubject("郵件標題");//郵件的標題
smm.setText("郵件的內容信息"); //郵件的內容
mailSender.send(smm);//發送郵件
2.2)發送HTML格式以及待附件的內容編寫
//1、創建文件發送器
//設置郵件發送器 包括髮送人 密碼 服務器地址
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
/* 省略的代碼與前面一致*/
//2、文件內容編寫
//使用JavaMail的MimeMessage,支持更加複雜的郵件格式和內容
MimeMessage msg = mailSender.createMimeMessage();
//創建MimeMessageHelper對象,處理MimeMessage的輔助類
// msg:發送的郵件信息,true:是否爲HTML格式的文件,utf-8:設置編碼格式(因爲發送html格式時、內容可能出現亂碼)
MimeMessageHelper helper = new MimeMessageHelper(msg, true,"utf-8");
//使用輔助類MimeMessage設定參數
helper.setFrom(mender.getUsername());
helper.setTo("[email protected]");
helper.setSubject("測試HTML格式的郵件發送");
helper.setText("<body><h1>Hello HTML格式的郵件內容</h1><body>"
+ "HTML格式的內容區",true); //true參數說明該內容格式爲HTML
//加載文件資源,作爲附件
ClassPathResource file = new ClassPathResource("秦時明月.jpg");
//加入附件
helper.addAttachment("秦時明月.jpg", file); //鍵值對
// 發送郵件
mailSender.send(msg);