/**
*
* @param smtp
* SMTP主機地址
* @param port
* SMTP主機地址連接埠
* @param user
* 使用者名稱
* @param password
* 密碼
* @param from
* 發信人
* @param to
* 收信人
* @param cc
* 抄送人
* @param bcc
* 暗送人
* @param subject
* 主題
* @param body
* 內容
* @throws Exception
*/
public static void send(String smtp, int port, String user,
String password, String from, String to, String cc, String bcc,
String subject, String body) throws Exception {
// 變數聲明
Properties props = new Properties();// 系統屬性
// 設定系統屬性
props.put("mail.transport.protocol", "smtp"); // 使用smtp協議
props.put("mail.smtp.auth", "true"); // 是否需要郵件認證
// 獲得郵件會話對象
Session mailSession = Session.getDefaultInstance(props, null);
mailSession.setDebug(true);
// 建立MIME郵件對象
MimeMessage mimeMsg = new MimeMessage(mailSession);
// 設定發信人
mimeMsg.setFrom(new InternetAddress(from));
// 設定收信人
if (to != null) {
mimeMsg.setRecipients(Message.RecipientType.TO, InternetAddress
.parse(to));
}
// 設定抄送人
if (cc != null) {
mimeMsg.setRecipients(Message.RecipientType.CC, InternetAddress
.parse(cc));
}
// 設定暗送人
if (bcc != null) {
mimeMsg.setRecipients(Message.RecipientType.BCC, InternetAddress
.parse(bcc));
}
// 設定郵件主題
mimeMsg.setSubject(subject);
// 設定郵件內容,將郵件body部分轉化為HTML格式
mimeMsg.setContent(body, "text/html ;charset=gbk");
// 發送郵件
Transport transport = mailSession.getTransport();
transport.connect(smtp, port, user, password);
transport.sendMessage(mimeMsg, mimeMsg.getAllRecipients());
transport.close();
}
這是一個發送HTML格式的郵件,我簡單的封裝成一個方法。
參數有點多,有些是可選的。
後來,我在開發中為了減少參數,我把參數封裝到一個Map中,
重載了這個方法,這樣感覺對外開發好一點。