這篇文章主要介紹“怎么使用spring boot發(fā)郵件”,在日常操作中,相信很多人在怎么使用spring boot發(fā)郵件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么使用spring boot發(fā)郵件”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!
網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了黃埔免費建站歡迎大家使用!
spring boot發(fā)郵件還是挺簡單的,首先把發(fā)郵件的start加到pom里面:
org.springframework.boot spring-boot-starter-mail
然后在application.properties里面配置好關(guān)于發(fā)郵件的參數(shù)
spring.mail.host=smtp.163.com spring.mail.port=25 spring.mail.username=yourmail@163.com spring.mail.password=yourpassword
其中spring.mail.host和spring.mail.username是一一對應(yīng)的,哪里的郵箱就要用哪里的smtp note對象是留言板的內(nèi)容 JavaMailSender和MimeMessageHelper是官方推薦的好基友,一般配套使用 fromMail就是在application.properties里面配置的spring.mail.username屬性,也就是發(fā)郵件的一方,用helper.setTo(...)配置 額外說一下,由于填留言板時一般也會留郵件地址,但那個郵件地址和這里的任何一個設(shè)置郵件的地方毫無關(guān)系,只需要在郵件的文本里面做記錄就好了,我之前就弱智了一把,把留言板里面的郵件地址填到helper.setTo(...),結(jié)果浪費了我半個小時查這種bug,真是一言難盡... 很多時候,按照上面的方法發(fā)郵件會出現(xiàn)下面的錯誤: 其中的一個原因是郵件服務(wù)器使用了授權(quán)碼登錄方式,也就是第三方登錄不能直接使用賬號密碼,而需要使用一種授權(quán)碼的方式,比如上面的163.com郵箱,就可以設(shè)置授權(quán)碼登錄,設(shè)置界面如下: QQ郵箱更是默認(rèn)就需要用授權(quán)碼登錄,QQ郵箱的授權(quán)登錄操作文檔請看這里 使用授權(quán)碼登錄后,需要把之前application.properties里面spring.mail.password的內(nèi)容從密碼換成授權(quán)碼,就能夠正常發(fā)郵件了。 我們查下JavaMailSender的代碼就知道,它其實背景比較復(fù)雜。首先它繼承了org.springframework.mail.MailSender接口。 而它本身也是一個接口,實現(xiàn)類只有一個,JavaMailSenderImpl 我們再來翻JavaMailSenderImpl的代碼,發(fā)現(xiàn)spring并沒有自己來做發(fā)送郵件的功能,而是直接用了java自身的郵件發(fā)送功能,核心是這一段 doSend方法中調(diào)用的核心類就是Transport類,這個類的包名是javax.mail。spring不愧是集成大師,java自帶的mail功能經(jīng)過spring的標(biāo)準(zhǔn)化包裝就成了spring自身功能的一部分,再通過spring boot的包裝,用starter的方式再次做簡化,我們就能夠直接通過極簡的方式使用了。 當(dāng)然,簡化的方法多種多樣,另外的一種形式的包裝就是使用helper類的方法,spring使用的就是MimeMessageHelper。在javax.mail在處理郵件的方式上,使用的是分而治之的辦法,不同的類處理不同的問題,所以看到很多的類在處理各種問題和情況。 這種做法在實現(xiàn)功能上是很好的,把一個復(fù)雜的問題分解成若干個小問題,分別實現(xiàn)。但對使用的開發(fā)人員就談不上友好了,容易出現(xiàn)以下幾個問題: 不直觀,調(diào)用者不知道從何下手 查找麻煩,類太多而且功能分散,不容易找到對應(yīng)的功能類 關(guān)系復(fù)雜,經(jīng)常對要引用哪個類會很沒有把握,因為太多處理單一問題的類 沒有統(tǒng)一的入口,上手難,很難脫離文檔直接使用 針對上述情況,spring通過MimeMessageHelper,把幾乎所有郵件發(fā)送需要處理的問題就集中到了這個類里面,使用方便又好找。下面是這個類所有的方法。 到此,關(guān)于“怎么使用spring boot發(fā)郵件”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
public class Note {
String yourName;
String yourEmail;
String yourSubject;
String yourMessage;
//getter,setter省略
}
2、授權(quán)碼發(fā)郵件
javax.mail.AuthenticationFailedException: 535 Error: authentication failed
3、簡單聊下JavaMailSender和MimeMessageHelper
public interface JavaMailSender extends MailSender {
...
}
protected void doSend(MimeMessage[] mimeMessages, @Nullable Object[] originalMessages) throws MailException {
Map
分享文章:怎么使用springboot發(fā)郵件
路徑分享:http://weahome.cn/article/ijcghg.html