版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第SpringBoot整合Javamail實現(xiàn)郵件發(fā)送的詳細(xì)過程目錄序言簡單郵件多組件郵件(帶附件,圖片,超鏈接的郵件)發(fā)送帶超鏈接的郵件發(fā)送帶圖片的郵件總結(jié)
序言
?發(fā)郵件對于咱們的Java來說是一個基本的功能,因此這里SpringBoot整合Javamail實際就是簡化了javamail發(fā)郵件的過程。咱們先看三個基本概念,就是Javamail發(fā)送郵件所需要遵從的協(xié)議:
SMTP(SimpleMailTransferProtocol):簡單郵件傳輸協(xié)議,用于發(fā)送電子郵件的傳輸協(xié)議POP3(PostOfficeProtocol-Version3):用于接收電子郵件的標(biāo)準(zhǔn)協(xié)議IMAP(InternetMailAccessProtocol):互聯(lián)網(wǎng)消息協(xié)議,是POP3的替代協(xié)議
?簡而言之,SMTP就是發(fā)郵件必須遵從的標(biāo)準(zhǔn),POP3就是接受郵件要遵從的標(biāo)準(zhǔn),而IMAP則是對POP3協(xié)議的升級。日常使用中,我們主要使用的是發(fā)郵件操作,那么接下來,咱們接跟著風(fēng)哥一起來看看SpringBoot整合Javamail發(fā)送郵件的步驟吧~。
簡單郵件
1.老生常談第一步,導(dǎo)入Javamail的Maven坐標(biāo)。
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-mail/artifactId
/dependency
2.配置郵箱的登錄信息
配置文件
javamail使用的郵件發(fā)送功能說到底還是由相應(yīng)的供應(yīng)商提供,所以要配置相應(yīng)郵件供應(yīng)商的信息。
host:配置發(fā)送郵件的主機(jī)協(xié)議
username:相應(yīng)供應(yīng)商的郵箱賬號
password:由郵箱供應(yīng)商提供的一個加密后的密碼,接下來咱們來看獲取步驟,此處以qq郵箱為例。
打開qq郵箱,進(jìn)入設(shè)置,找到這個選項,點生成授權(quán)碼,進(jìn)行安全驗證后,即可獲得授權(quán)碼
spring:
mail:
host:
username:test@
password:test
創(chuàng)建發(fā)送文件的接口類和方法實現(xiàn)類
publicinterfaceSendMailService{
voidSendMail()throwsMessagingException;
把實現(xiàn)類交給Spring容器管理,目的是為了方便在測試方法里自動注入使用。
@Service
publicclassSendMailServiceImplimplementsSendMailService{
@Autowired
privateJavaMailSenderjavaMailSender;
privateStringfrom="test@";
privateStringto="test@";
privateStringtitle="test";
privateStringtext="hahahaha";
@Override
publicvoidSendMail(){
//創(chuàng)建SimpleMailMessage對象,用于郵件發(fā)送
SimpleMailMessagemailMessage=newSimpleMailMessage();
mailMessage.setFrom(from);
mailMessage.setTo(to);
mailMessage.setSubject(title);
mailMessage.setText(text);
javaMailSender.send(mailMessage);
在測試類方法里進(jìn)行測試
@SpringBootTest
classYsjApplicationTests{
@Autowired
privateSendMailService2sendMailService2;
@Test
voidcontextLoads(){
for(inti=0;ii++)
sendMailService2.SendMail();
總結(jié):
注意看郵箱授權(quán)碼怎么生成的千萬不要連續(xù)多發(fā)相同內(nèi)容的無意義文件,否則會被判定為垃圾郵件簡單郵件使用SimpleMailMessage類對象進(jìn)行郵件發(fā)送即可郵件發(fā)送使用JavaMailSender對象
多組件郵件(帶附件,圖片,超鏈接的郵件)
?正常生活中,我們肯定不止步使用簡單的標(biāo)題,正文這些只包含枯燥的文字的郵件,更多的是喜歡使用帶有圖片、視頻、尤其是交作業(yè)給老師使用的附件功能,所以呢,在經(jīng)過上面的基礎(chǔ)學(xué)習(xí)后,接下來,朋友們跟著踏風(fēng)一起來學(xué)習(xí)一下怎么實現(xiàn)用SpringBoot整合Javamail實現(xiàn)發(fā)送咱們更多使用的多組件郵件,Letsgo.
?為了防止有的小伙伴在處理過程中出現(xiàn)差錯,咱們這里還從最開始導(dǎo)坐標(biāo)一步一步來。
發(fā)送帶超鏈接的郵件
1、導(dǎo)入Javamail的Maven坐標(biāo)。
dependency
groupIdorg.springframework.boot/groupId
artifactIdspring-boot-starter-mail/artifactId
/dependency
2、配置配置文件,獲取郵箱授權(quán)碼的步驟請參考上邊。
spring:
mail:
host:
username:test@
password:test
3、創(chuàng)建發(fā)送郵件的方法所在的接口,及接口的實現(xiàn)類。
publicinterfaceSendMailService2{
voidSendMail();
發(fā)送帶網(wǎng)頁鏈接的郵件要先使用JavaMailSender類的createMimeMessage()方法創(chuàng)建一個MinmeMessage類對象創(chuàng)建MImeMessageHelper對象用于發(fā)送帶超鏈接的郵件helper.setText(text,true):true表示支持解析html格式helper.setFrom(from+(踏風(fēng)彡)):后邊的+()左右時把發(fā)送者的備注改為括號里邊的內(nèi)容
@Service
publicclassSendMailServiceImpl2implementsSendMailService2{
@Autowired
privateJavaMailSenderjavaMailSender;
privateStringfrom="test@";
privateStringto="test@";
privateStringtitle="test";
privateStringtext="ahref='/qq_54217349spm=1011.2415.3001.5343'歡迎光臨/a
@Override
publicvoidSendMail(){
try{
//發(fā)送帶超鏈接的郵件需要創(chuàng)建MimeMessage對象
MimeMessagemessage=javaMailSender.createMimeMessage();
MimeMessageHelperhelper=newMimeMessageHelper(message);
helper.setTo(to);
helper.setFrom(from+"(踏風(fēng)彡)");
helper.setText(text,true);
helper.setSubject(title);
javaMailSender.send(message);
}catch(MessagingExceptione){
e.printStackTrace();
在測試類測試
@SpringBootTest
classYsjApplicationTests{
@Autowired
privateSendMailService2sendMailService2;
@Test
voidcontextLoads(){
sendMailService2.SendMail();
發(fā)送帶圖片的郵件
?前面幾步都同于發(fā)送帶超鏈接郵件的步驟,接下來咱們主要看怎么使用MimeMessageHelper類對象進(jìn)行帶附件郵件的發(fā)送,所以咱們主要看實現(xiàn)類方法就行了
?下面,首先,咱們先做一件有意思的事情,咱們發(fā)送帶附件的郵件同樣是使用MimeMessageHelper對象,那是不是可以有一個大膽的想法,咱們直接創(chuàng)建文件并使用它進(jìn)行發(fā)送,comn,來試一下。
?下面的方法我已經(jīng)幫大家創(chuàng)建好了,大家可直接復(fù)制粘貼食用。
@Service
publicclassSendMailServiceImpl2implementsSendMailService2{
@Autowired
privateJavaMailSenderjavaMailSender;
privateStringfrom="test@";
privateStringto="test@";
privateStringtitle="踏風(fēng)彡";
privateStringtext="ahref='/qq_54217349spm=1011.2415.3001.5343'歡迎光臨/a
@Override
publicvoidSendMail(){
try{
//發(fā)送帶附件的郵件需要創(chuàng)建MimeMessage對象
MimeMessagemessage=javaMailSender.createMimeMessage();
//這個true表示要發(fā)送的郵件支持附件
MimeMessageHelperhelper=newMimeMessageHelper(message);
helper.setTo(to);
helper.setFrom(from+"(踏風(fēng)彡)");
helper.setText(text,true);//設(shè)置正文支持html格式
helper.setSubject(title);
//Filefile=newFile("G:\\Javamail.zip");
Filefile1=newFile("C:\\Users\\10116\\Desktop\\1.jpg");
//helper.addAttachment(file.getName(),file);//添加附件
helper.addAttachment("皮卡丘丫~.jpg",file1);
javaMailSender.send(message);
}catch(MessagingExceptione){
e.printStackTrace();
看到這的小伙伴,看來都遇見了如下的報錯。
?這是因為什么呢?這是因為咱們沒有開啟附件發(fā)送的功能啊,小伙伴們,那么,接下來,讓咱們看看怎么開啟吧。
?很簡單,如下,這個true即表示開啟附件發(fā)送功能。
?接下來,已經(jīng)有思路的小伙伴,建議改完后,自己去實踐一下,如果出錯,可以再到文章底部看我的代碼。
總結(jié)
發(fā)送帶附件的郵件跟發(fā)送帶超鏈接的圖片只有一步之差,開啟附件發(fā)送功能即可。若是要支持html語法,可以在setText的方法參數(shù)上加上true,表示開啟了MimeMessageHelper類的html語法解析功能。記得把代碼中的test改成相應(yīng)的賬號,郵箱動態(tài)碼。
文末代碼
@Service
publicclassSendMailServiceImpl2implementsSendMailService2{
@Autowired
privateJavaMailSenderjavaMailSender;
privateStringfrom="test@";
privateStringto="test@";
privateStringtitle="快看啊叼人";
privateStringtext="ahref='/qq_54217349spm=1011.2415.3001.5343'歡迎光臨/a
@Override
publicvoidSendMail(){
tr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年度滁州市瑯琊區(qū)事業(yè)單位公開招聘工作人員10名筆試模擬試題及答案解析
- 2026天津工業(yè)大學(xué)招聘1人筆試模擬試題及答案解析
- 2026年方大炭素新材料科技股份有限公司招聘78人考試備考試題及答案解析
- 2026西安經(jīng)開第十四小學(xué)音樂教師招聘考試備考試題及答案解析
- 2026浙江寧波市數(shù)據(jù)局直屬事業(yè)單位招聘編外人員1人筆試備考試題及答案解析
- 2026年國際教育合作交流實務(wù)指南
- 2026年中醫(yī)康復(fù)技術(shù)應(yīng)用培訓(xùn)
- 2026上海師范大學(xué)招聘工作人員筆試備考試題及答案解析
- 2026江蘇蘇州市生物醫(yī)藥產(chǎn)業(yè)集團(tuán)有限公司招聘1人考試備考題庫及答案解析
- 2026年垃圾填埋場的地質(zhì)災(zāi)害風(fēng)險分析
- 2026年哈爾濱通河縣第一批公益性崗位招聘62人考試參考試題及答案解析
- 六年級寒假家長會課件
- 物流鐵路專用線工程節(jié)能評估報告
- 2026天津市南開區(qū)衛(wèi)生健康系統(tǒng)招聘事業(yè)單位60人(含高層次人才)備考核心試題附答案解析
- 重瞼手術(shù)知情同意書
- 研發(fā)部門員工加班管理細(xì)則
- 46566-2025溫室氣體管理體系管理手冊及全套程序文件
- 九師聯(lián)盟2026屆高三上學(xué)期12月聯(lián)考英語(第4次質(zhì)量檢測)(含答案)
- 第21章 反比例函數(shù)(單元測試·綜合卷)(含答案)-滬科版(2024)九上
- 鋼結(jié)構(gòu)橋梁施工監(jiān)測方案
- 2025年秋青島版(五四學(xué)制)小學(xué)數(shù)學(xué)五年級上冊(全冊)知識點梳理歸納
評論
0/150
提交評論