Jmail發(fā)送郵件工具類分享
好久沒(méi)更新博客了,實(shí)在是拖延癥嚴(yán)重啊,好可怕,先更新個(gè)工具類吧,之前寫的發(fā)送郵件的小工具,話不多說(shuō)上代碼
import lombok.extern.slf4j.Slf4j; import java.util.Properties; import javax.mail.*; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; /** * <b>發(fā)送郵件工具類</b><br/> * <b>Create on:</b>2016/10/9 16:14<br/> * * @author : liud<br/> */ @Slf4j public class SendMailUtil { /** * 發(fā)送郵件 * @param smtpHost * @param fromUser * @param fromUserPassword * @param emailPort * @param toUser * @param subject * @param messageText */ public static boolean doSendEmail(String smtpHost, final String fromUser, final String fromUserPassword, String userName, String emailPort, String toUser, String subject, String messageText) throws Exception { boolean flag = false; try { Properties props = new Properties(); props.put("mail.smtp.host", smtpHost); props.put("mail.smtp.port", emailPort); props.put("mail.smtp.auth", "true"); Session session = Session.getDefaultInstance(props, new Authenticator(){ protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(fromUser, fromUserPassword); }}); MimeMessage message = new MimeMessage(session); // 發(fā)件人 InternetAddress from = new InternetAddress(fromUser); message.setFrom(from); // 收件人 InternetAddress to = new InternetAddress(toUser); message.setRecipient(Message.RecipientType.TO, to); // 郵件標(biāo)題 message.setSubject(subject); // 郵件內(nèi)容,也可以使純文本"text/plain" message.setContent(messageText, "text/html;charset=GBK"); message.saveChanges(); Transport transport = session.getTransport("smtp"); // smtp驗(yàn)證,就是你用來(lái)發(fā)郵件的郵箱用戶名密碼 transport.connect(smtpHost, userName, fromUserPassword); // 發(fā)送 transport.sendMessage(message, message.getAllRecipients()); transport.close(); flag = true; } catch (AddressException e) { log.error("地址異常:{}", e); throw e; } catch (MessagingException e) { log.error("消息異常:{}", e); throw e; } catch (Exception e) { log.error("系統(tǒng)異常:{}", e); throw e; } return flag; } }
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
hashMap擴(kuò)容時(shí)應(yīng)該注意這些死循環(huán)問(wèn)題
今天給大家?guī)?lái)的是關(guān)于Java的相關(guān)知識(shí),文章圍繞著hashMap擴(kuò)容時(shí)的死循環(huán)問(wèn)題展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06SpringBoot通過(guò)Nginx代理獲取真實(shí)IP
springboot作為后臺(tái)代碼,獲取到的登錄IP是前臺(tái)的代理服務(wù)器地址,并不是用戶的真實(shí)IP地址,本文主要介紹了SpringBoot通過(guò)Nginx代理獲取真實(shí)IP,具有一定的參考價(jià)值,感興趣的可以了解一下2024-01-01淺談spring-boot的單元測(cè)試中,@Before不被執(zhí)行的原因
這篇文章主要介紹了淺談spring-boot的單元測(cè)試中,@Before不被執(zhí)行的原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Java常問(wèn)面試內(nèi)容--數(shù)組、聲明、初始化、冒泡、多維數(shù)組、稀疏數(shù)組
這篇文章主要介紹了Java多線程面試題(面試官常問(wèn)),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07Spring AspectJ 實(shí)現(xiàn)AOP的方法你了解嗎
這篇文章主要為大家介紹了Spring AspectJ 實(shí)現(xiàn)AOP的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-01-01Java HashMap在遍歷時(shí)刪除元素的實(shí)現(xiàn)
本文主要介紹了Java HashMap在遍歷時(shí)刪除元素的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-12-12新版idea如何開啟多臺(tái)JVM虛擬機(jī)的流程步驟
在IntelliJ?IDEA這個(gè)集成開發(fā)環(huán)境中(IDE),開啟JVM(Java?Virtual?Machine)通常是在運(yùn)行Java應(yīng)用程序時(shí)的操作,本文給大家介紹了新版idea如何開啟多臺(tái)JVM虛擬機(jī)的流程步驟,需要的朋友可以參考下2024-10-10