問題分析
創(chuàng)新互聯(lián)建站-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比朝天網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式朝天網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋朝天地區(qū)。費(fèi)用合理售后完善,十多年實(shí)體公司更值得信賴。
現(xiàn)在我們有這樣一個需求,就是當(dāng)我們系統(tǒng)出現(xiàn)問題或bug的時(shí)候,讓系統(tǒng)通過郵件發(fā)送日志信息給相關(guān)人員,那么此時(shí),我們就需要實(shí)現(xiàn)一個讓系統(tǒng)發(fā)送郵件的功能
解決步驟
1.pom jar包導(dǎo)入
javax.mail 1.4.1
2.xml配置
application-mail.xml配置
<?xml version="1.0" encoding="UTF-8"?>true true
3.交給Spring管理
其實(shí)就是將發(fā)送郵件的xml配置文件引入到spring的配置文件中
這里需要說明一下,classpath后面是跟的我的一個關(guān)于實(shí)現(xiàn)這些功能專門的配置文件的文件夾,然后通配文件夾里面所有.xml的配置文件,當(dāng)然,也可以這樣寫
這樣配置也完全沒有任何問題,看個人喜好哈,只是我喜歡把這些相關(guān)的配置文件同一放在一個文件夾里面,然后統(tǒng)一一起引入
4.代碼實(shí)現(xiàn)
需要說明一下,郵件分為兩種,一種是普通郵件,即文本信息,不含html代碼或附件,另一個種就是包含html代碼和附件的,這兩種方式相同的是都需要在發(fā)送郵件的類里面引入發(fā)送郵件的核心對象
@Autowired private JavaMailSender javaMailSender;
4.1 普通郵件
需要注意的是這里發(fā)送郵件的地址必須是applicaiton-mail.xml中所配置的username
//獲取郵箱對象 SimpleMailMessage message = new SimpleMailMessage(); //設(shè)置由哪個郵箱發(fā)出 這里自己定義 message.setFrom("xxxxxx@qq.com"); //設(shè)置標(biāo)題 message.setSubject("測試來了哦"); //設(shè)置發(fā)送內(nèi)容 message.setText("我來了,你來了沒"); //設(shè)置發(fā)送地址 -- 發(fā)給誰 message.setTo("xxxx@icloud.com"); //發(fā)送郵件 javaMailSender.send(message);
4.1 復(fù)雜郵件
//創(chuàng)建一個空郵件對象 MimeMessage mimeMessage = javaMailSender.createMimeMessage(); //創(chuàng)建發(fā)送復(fù)雜郵件的工具類,并傳入空郵件,設(shè)置是否有附件為true和編碼集 MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8"); //設(shè)置發(fā)送郵件的郵箱地址,必須和xml里面配置一致 messageHelper.setFrom("xxxxxx@qq.com"); //設(shè)置郵件標(biāo)題 messageHelper.setSubject("復(fù)雜郵件標(biāo)題,就是我"); //設(shè)置郵件里面的普通內(nèi)容 messageHelper.setText("我是復(fù)雜郵件,我又來了"); //設(shè)置復(fù)雜郵件的html代碼,并設(shè)置是否為html為true messageHelper.setText("我是復(fù)雜郵件的html代碼,能實(shí)現(xiàn)不?
",true); //添加發(fā)送郵件的附件,是一個圖片 messageHelper.addAttachment("hah.png",new File("img/1.png")); //添加附件文件 messageHelper.addAttachment("mf文件",new File("s/login.jsp")); //抄送給誰 這里的參數(shù)可以是數(shù)組,即多個接收對象 messageHelper.setCc("mmmm@qq.com"); //發(fā)送給誰 這里的參數(shù)可以是數(shù)組,即多個接收對象 messageHelper.setTo("xxxx@icloud.com"); //發(fā)送郵件 javaMailSender.send(mimeMessage);
5.郵箱配置
注意,大家不要以為現(xiàn)在就可以直接發(fā)送了,還需要大家花一毛錢才行,這個錢不是給我哈,也不是給郵箱或?yàn)g覽器,而是給到運(yùn)營商,這里就以QQ郵箱為例:
第一步,點(diǎn)擊郵箱首頁左上角的設(shè)置
第二步,選中設(shè)置里面的賬戶設(shè)置
第三步,往下翻,翻到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務(wù)
第四步,會讓你發(fā)送短信,這時(shí)候就可以直接發(fā)送短信,這里就到了收錢的地方,看吧,不是我收哈
最后,當(dāng)發(fā)送成功之后,就會收到一個授權(quán)碼,記住它,然后填入你的application-mail.xml里面的password欄中,然后再運(yùn)行我們的測試方法即可
到此這篇關(guān)于基于Spring的Maven項(xiàng)目實(shí)現(xiàn)發(fā)送郵件功能的示例的文章就介紹到這了,更多相關(guān)Spring Maven項(xiàng)目發(fā)送郵件內(nèi)容請搜索創(chuàng)新互聯(lián)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持創(chuàng)新互聯(lián)!