本文中使用 JavaMail 可以在 java.net 下載到。本文以 1.5.5版本爲例:
在Itellij Idea 中通過 File->Project Structure
添加下載好的包
以QQ郵箱的發送爲例
Properties pro = new Properties();
pro.put("mail.stmp.host","stmp.qq.com"); //qq郵箱的STMP郵件服務器
pro.put("mail.stmp.port","587"); //通過ssl安全協議端口
pro.put("mail.stmp.auth","true"); //打開驗證
創建認證器 Authenticator
在重載方法中重寫getPasswordAuthentication()
方法,傳入字符串形式的用戶名(一般是你的發件郵箱)username
和密碼password
Authenticator authenticator = new Authenticator(){
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
}
};
創建郵件會話 Session
Session session = Session.getDefaultInstance(pro,authenticator);
創建MIME形式的消息對象MimeMessage
什麼是 MIME
MimeMessage mimeMessage = new MimeMessage(session);
mimeMessage.setFrom("[email protected]"); //發件郵箱地址
mimeMessage.setRecipients(Message.RecipientType.TO,"[email protected]");//收件人郵箱地址
mimeMessage.setSubject("Hello Mail!"); //設置郵件主題
mimeMessage.setSendDate(new Date()); //設置發送時間,此處爲當前時間
完成了這些,接下來就是創建郵件的內容了,我們需要通過 MimeMessage
的 setContent(Multipart part);
方法來傳入一個Multipart
對象
Multipart multipart = new Multipart();
BodyPart bodyPart = new BodyPart();
bodyPart.setContent("<h1>I am content!</h1>","text/html;charset=utf-8"); //設置BodyPart內容及格式
multipart.addBodyPart(bodyPart);
接下來設置MimeMessage
的內容
mimeMessage.setContent(multipart);
到這裏基本上郵件創建就完成了,接下來就是發送了
Transport.send(mimeMessage);
相關API JavaMail API