1. 程式人生 > >傳送郵件工具類EmailKit

傳送郵件工具類EmailKit

一、到相關郵箱伺服器開通smtp等功能

二、程式碼編寫

import java.util.Date;
import java.util.Properties;

import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress
; import javax.mail.internet.MimeBodyPart; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMultipart; import com.jfinal.kit.Prop; import com.jfinal.kit.PropKit; public class EmailKit { /** * FIXME smtp地址需改成配置項,郵件正文程式碼略微複雜應可簡化 * @param toEmail 目標郵箱 * @param title 郵件主題 * @param content 郵件內容 */
public static boolean send(String toEmail, String title, String content) { boolean flag = true; try { Prop emailProp = PropKit.use("email.properties"); String fromEmail = emailProp.get("fromEmail"); Properties props = new Properties(); props.put
("mail.smtp.host", emailProp.get("smtpHost")); props.put("mail.smtp.auth", "true"); // 這樣才能通過驗證 //ssl 驗證 部分非企業郵箱 props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); props.setProperty("mail.smtp.port", "465"); props.setProperty("mail.smtp.socketFactory.port", "465"); Session s = Session.getInstance(props); s.setDebug(true); MimeMessage message = new MimeMessage(s); // 給訊息物件設定發件人/收件人/主題/發信時間 InternetAddress from = new InternetAddress(fromEmail); // 發郵件的出發地(發件人的信箱) message.setFrom(from); InternetAddress to = new InternetAddress(toEmail);// 發郵件的目的地(收件人信箱) message.setRecipient(Message.RecipientType.TO, to); message.setSubject(title); message.setSentDate(new Date()); // 給訊息物件設定內容 BodyPart mdp = new MimeBodyPart();// 新建一個存放信件內容的BodyPart物件 mdp.setContent(content, "text/html;charset=gb2312");// 給BodyPart物件設定內容和格式/編碼方式 Multipart mm = new MimeMultipart();// 新建一個MimeMultipart物件用來存放BodyPart物件(事實上可以存放多個) mm.addBodyPart(mdp);// 將BodyPart加入到MimeMultipart物件中(可以加入多個BodyPart) message.setContent(mm);// 把mm作為訊息物件的內容 message.saveChanges(); Transport transport = s.getTransport("smtp"); transport.connect(emailProp.get("smtpHost"), fromEmail, emailProp.get("fromPassword")); transport.sendMessage(message, message.getAllRecipients()); transport.close(); } catch (MessagingException e) { e.printStackTrace(); flag = false; } return flag; } }