EmailUtil
阿新 • • 發佈:2018-12-27
import java.security.Security; import java.util.Date; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeUtility; /** * javaMail的郵件工具類 * */ public class EmailUtils { /** * 使用加密的方式,利用465埠進行傳輸郵件,開啟ssl * @param to 為收件人郵箱 * @param content 傳送的訊息 */ public static void sendEmail(String to, String title, String content) { try { Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider()); final String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; //設定郵件會話引數 Properties props = new Properties(); //郵箱的傳送伺服器地址 props.setProperty("mail.smtp.host", "smtp.163.com"); props.setProperty("mail.smtp.socketFactory.class", SSL_FACTORY); props.setProperty("mail.smtp.socketFactory.fallback", "false"); //郵箱傳送伺服器埠,這裡設定為465埠 props.setProperty("mail.smtp.port", "465"); props.setProperty("mail.smtp.socketFactory.port", "465"); props.put("mail.smtp.auth", "true"); final String username = "admin"; final String password = "1234"; //獲取到郵箱會話,利用匿名內部類的方式,將傳送者郵箱使用者名稱和密碼授權給jvm Session session = Session.getDefaultInstance(props, new Authenticator() { protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(username, password); } }); //通過會話,得到一個郵件,用於傳送 Message msg = new MimeMessage(session); //設定發件人 //設定自定義發件人暱稱 String from = "
[email protected].com"; String nick=""; nick = MimeUtility.encodeText("ADMIN_100"); msg.setFrom(new InternetAddress(nick+" <"+from+">")); //msg.setFrom(new InternetAddress("[email protected]")); //設定收件人,to為收件人,cc為抄送,bcc為密送 msg.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to, false)); //msg.setRecipients(Message.RecipientType.CC, InternetAddress.parse(to, false)); //msg.setRecipients(Message.RecipientType.BCC, InternetAddress.parse(to, false)); msg.setSubject(title); //設定郵件內容 msg.setText(content); //設定傳送的日期 msg.setSentDate(new Date()); //呼叫Transport的send方法去傳送郵件 Transport.send(msg); } catch (Exception e) { e.printStackTrace(); } } }