1.下載下傳javax.mail.jar
javamail下載下傳位址:https://java.net/projects/javamail/pages/Home
2.将jar引入工程
3.簡單的電子郵件發送
代碼實作
//-----------------------------收件郵箱,發件人,收件人,郵件主題,郵件正文,
public static void sendEmail(String receiveMailAccount,String fjrmc,String sjrmc,String yjzt,String yjzw){
//紅色部分,是把發件人的使用者名,密碼,smtp伺服器位址寫到了一個properties配置檔案裡,這裡需要把郵箱使用者名密碼換成自己的
ResourceBundle resource = ResourceBundle.getBundle("resources/email");
String username = resource.getString("username"); //郵箱使用者名 *****@163.com
String pwd = resource.getString("pwd"); //郵箱授權密碼
String smtp = resource.getString("smtp"); //smtp.163.com
if(null!=username&&!username.equals("")&&null!=pwd&&!pwd.equals("")&&null!=smtp&&!smtp.equals("")){
try {
// 1. 建立參數配置, 用于連接配接郵件伺服器的參數配置
Properties props = new Properties(); // 參數配置
props.setProperty("mail.transport.protocol", "smtp"); // 使用的協定(JavaMail規範要求)
props.setProperty("mail.host", smtp); // 發件人的郵箱的 SMTP 伺服器位址
props.setProperty("mail.smtp.auth", "true"); // 請求認證,參數名稱與具體實作有關
// 2. 根據配置建立會話對象, 用于和郵件伺服器互動
Session session = Session.getDefaultInstance(props);
session.setDebug(true); // 設定為debug模式, 可以檢視詳細的發送 log
// 3. 建立一封郵件
// 3.1. 建立一封郵件
MimeMessage message = new MimeMessage(session);
// 3.2. From: 發件人
message.setFrom(new InternetAddress(username, fjrmc, "UTF-8"));
// 3.3. To: 收件人(可以增加多個收件人、抄送、密送)
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMailAccount, sjrmc, "UTF-8"));
// 3.4. Subject: 郵件主題
message.setSubject(yjzt, "UTF-8");
// 3.5. Content: 郵件正文(可以使用html标簽)
message.setContent(yjzw, "text/html;charset=UTF-8");
// 3.6. 設定發件時間
message.setSentDate(new Date());
// 3.7. 儲存設定
message.saveChanges();
// 4. 根據 Session 擷取郵件傳輸對象
Transport transport = session.getTransport();
// 5. 使用 郵箱賬号 和 密碼 連接配接郵件伺服器
// 這裡認證的郵箱必須與 message 中的發件人郵箱一緻,否則報錯
transport.connect(username, pwd);
// 6. 發送郵件, 發到所有的收件位址, message.getAllRecipients() 擷取到的是在建立郵件對象時添加的所有收件人, 抄送人, 密送人
transport.sendMessage(message, message.getAllRecipients());
// 7. 關閉連接配接
transport.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
//測試
public static void main(String[] args) {
sendEmail("收件人郵箱@qq.com", "發件人", "收件人", "郵件主題", "郵件正文");
}
4.發件郵箱配置
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiclRnblN0LclHdpZXYyd2LcBzNvwVZ2x2bzNXak9CX90TQNNkRrFlQKBTSvwFbslmZvwFMwQzLcVmepNHdu9mZvwFVywUNMZTY18CX052bm9CX90TQPlXQU90djRkT4FEVkZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DN1IDM0cTN0EzNxIDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
5.用戶端授權密碼
以上簡單的郵件發送就基本完成。
運作時如果有報錯Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream
則需要手動删除Common\plugins\com.genuitec.eclipse.j2eedt.core_9.0.0.me201103181703\data\libraryset\EE_5 下javaee.jar裡邊的mail和activation檔案夾