package com.xxxx.websites.test; import java.util.Properties; import javax.mail.Address; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import com.sun.mail.util.MailSSLSocketFactory; public class SendEmailUtil { /** * @Title: sendEmail * @Description: 發送郵件工具類方法 * @param sendEmail * 發件人地址 * @param sendEmailPwd
* 受權碼代替密碼(更安全) 受權碼的獲取:進入我的郵箱,點擊設置–>帳戶, SMTP服務選項 默認狀況下這個選項是不開啓的。 * 點擊開啓騰訊會進行身份驗證,身份驗證經過之後,會收到一個用於使用SMTP的16位口令, * 驗證身份的過程當中把收到的口令保存下來,由於後面要使用SMTP功能必需要用到這個口令。
阿里雲企業郵箱SMTP默認開啓,密碼就是郵箱密碼,企業郵箱服務地址是 smtp.mxhichina.com * @param title * 郵件標題 * @param content * 郵件內容 * @param toEmilAddress * 收件人地址 * @throws Exception * @return: void */ public static void sendEmail(String sendEmail, String sendEmailPwd, String title, String content, String[] toEmilAddress) throws Exception { Properties props = new Properties(); // 開啓debug調試,以便在控制檯查看 //props.setProperty("mail.debug", "true"); // 設置郵件服務器主機名 props.setProperty("mail.host", "smtp.mxhichina.com"); // 發送服務器須要身份驗證 props.setProperty("mail.smtp.auth", "true"); // 發送郵件協議名稱 props.setProperty("mail.transport.protocol", "smtp"); // 開啓SSL加密,不然會失敗 MailSSLSocketFactory sf = new MailSSLSocketFactory(); sf.setTrustAllHosts(true); props.put("mail.smtp.ssl.enable", "true"); props.put("mail.smtp.ssl.socketFactory", sf); Session session = Session.getInstance(props); Message msg = new MimeMessage(session); // 發送的郵箱地址 msg.setFrom(new InternetAddress(sendEmail)); // 設置標題 msg.setSubject(title); // 設置內容 msg.setContent(content, "text/html;charset=gbk;"); Transport transport = session.getTransport(); // 設置服務器以及帳號和密碼 // 這裏端口改爲465 transport.connect("smtp.mxhichina.com", sendEmail, sendEmailPwd); // 發送到的郵箱地址 transport.sendMessage(msg, getAddress(toEmilAddress)); if(transport!=null){ try { transport.close(); } catch (MessagingException e) { e.printStackTrace(); } } } /** * @Title: getAddress * @Description: 遍歷收件人信息 * @param emilAddress * @return * @throws Exception * @return: Address[] */ private static Address[] getAddress(String[] emilAddress) throws Exception { Address[] address = new Address[emilAddress.length]; for (int i = 0; i < address.length; i++) { address[i] = new InternetAddress(emilAddress[i]); } return address; } /** * @Title: main * @Description: 測試 * @param args * @throws Exception * @return: void */ public static void main(String[] args) throws Exception { /** * @param sendEmail 發件人地址 * @param sendEmailPwd * 受權碼代替密碼(更安全) * @param title * 郵件標題 * @param content * 郵件內容 * @param toEmilAddress * 收件人地址 */ SendEmailUtil.sendEmail("xxx@xxx.com", "xxxxx", "testEmail", "testcontent",new String[]{"zhengk@xxxx.com", "xxxxx@qq.com"}); } }