此篇主要講的是使用spring配置實(shí)現(xiàn)郵件發(fā)送,與之前的底層實(shí)現(xiàn)簡(jiǎn)便了不少,只需要幾個(gè)配置就可以了,那么請(qǐng)往下看:
成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),樊城企業(yè)網(wǎng)站建設(shè),樊城品牌網(wǎng)站建設(shè),網(wǎng)站定制,樊城網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,樊城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
先寫個(gè)接口
/** * @Title: IMailserdService.java * @Package org.service * @Description: TODO該方法的主要作用: * @author A18ccms A18ccms_gmail_com * @date 2017-5-30 上午10:36:34 * @version V1.0 */ package org.service; /** * * 項(xiàng)目名稱:spring_Schop8 * 類名稱:IMailserdService * 類描述: * 創(chuàng)建人:Mu Xiongxiong * 修改備注: * @version * */ public interface IMailsendService { /** * * @Title: sendMessage * @Description: 該方法的主要作用:發(fā)送郵件 * @param 設(shè)定文件 * @return 返回類型:void * @throws */ void sendMessage(); }
然后在寫個(gè)實(shí)現(xiàn)該接口的類:
/** * @Title: AttMailsendServiceImpl.java * @Package org.service.impl * @Description: TODO該方法的主要作用: * @author A18ccms A18ccms_gmail_com * @date 2017-5-30 上午11:12:02 * @version V1.0 */ package org.service.impl; import java.io.IOException; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.service.IMailsendService; import org.springframework.core.io.ClassPathResource; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; /** * * 項(xiàng)目名稱:spring_Schop8 * 類名稱:AttMailsendServiceImpl * 類描述: 使用spring實(shí)現(xiàn)對(duì)郵件的發(fā)送 * 創(chuàng)建人:Mu Xiongxiong * 修改備注: * @version * */ public class AttMailsendServiceImpl implements IMailsendService { private JavaMailSender javaMailSender; /**(非 Javadoc) * <p>Title: sendMessage</p> * <p>Description(描述):發(fā)送帶附件的郵件 </p> * @see org.service.IMailsendService#sendMessage() */ @Override public void sendMessage() { MimeMessage message = javaMailSender.createMimeMessage(); MimeMessageHelper helper; try { helper = new MimeMessageHelper(message,true,"utf-8"); helper.setFrom("jerry@mail.com"); helper.setTo("tina@mail.com"); helper.setSubject("帶附件的郵件"); //普通格式的 //helper.setText("發(fā)送一個(gè)附件內(nèi)容!<a ); //html格式的 helper.setText("發(fā)送一個(gè)附件內(nèi)容!<a ,true); //添加附件1 ClassPathResource file1 = new ClassPathResource("/org/doc/doc.txt"); helper.addAttachment(file1.getFilename(),file1.getFile()); //添加附件2 ClassPathResource file2 = new ClassPathResource("/org/doc/text.txt"); helper.addAttachment(file2.getFilename(), file2.getFile()); javaMailSender.send(message); } catch (MessagingException e) { // TODO 異常執(zhí)行塊! e.printStackTrace(); } catch (IOException e) { // TODO 異常執(zhí)行塊! e.printStackTrace(); } } public JavaMailSender getJavaMailSender() { return javaMailSender; } public void setJavaMailSender(JavaMailSender javaMailSender) { this.javaMailSender = javaMailSender; } }
上面的這個(gè)類還可以發(fā)送帶附件的郵件,里面含兩個(gè)附件(文件),我弄上來(lái)吧:
還有一種是使用模板發(fā)送帶html格式的郵件:
我直接上實(shí)現(xiàn)類:
/** * @Title: CreateMatterServiceImpl.java * @Package org.service.impl * @Description: TODO該方法的主要作用: * @author A18ccms A18ccms_gmail_com * @date 2017-5-30 上午11:46:53 * @version V1.0 */ package org.service.impl; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.mail.MessagingException; import javax.mail.internet.MimeMessage; import org.service.IMailsendService; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.ui.freemarker.FreeMarkerTemplateUtils; import freemarker.template.Configuration; import freemarker.template.Template; import freemarker.template.TemplateException; /** * * 項(xiàng)目名稱:spring_Schop8 * 類名稱:CreateMatterServiceImpl * 類描述: * 創(chuàng)建人:Mu Xiongxiong * 修改備注: * @version * */ public class CreateMatterServiceImpl implements IMailsendService { private JavaMailSender javaMailSender; private Configuration configuration; /**(非 Javadoc) * <p>Title: sendMessage</p> * <p>Description(描述):使用后模板發(fā)送郵件 </p> * @see org.service.IMailsendService#sendMessage() */ @Override public void sendMessage() { MimeMessage message = javaMailSender.createMimeMessage(); try { MimeMessageHelper helper = new MimeMessageHelper(message,true,"UTF-8"); helper.setFrom("jerry@mail.com"); helper.setTo("tina@mail.com"); helper.setSubject("使用模板進(jìn)行發(fā)送郵件"); helper.setText(getText(),true); //從模板里面讀取 javaMailSender.send(message); } catch (MessagingException e) { // TODO 異常執(zhí)行塊! e.printStackTrace(); } } //讀取模板 private String getText(){ String txt = ""; try { Template template = configuration.getTemplate("mail.ftl"); //通過(guò)map傳遞動(dòng)態(tài)數(shù)據(jù) Map map = new HashMap(); map.put("username","雄雄"); //解析模板文件 txt = FreeMarkerTemplateUtils.processTemplateIntoString(template,map); } catch (IOException e) { // TODO 異常執(zhí)行塊! e.printStackTrace(); } catch (TemplateException e) { // TODO 異常執(zhí)行塊! e.printStackTrace(); } return txt; } public JavaMailSender getJavaMailSender() { return javaMailSender; } public void setJavaMailSender(JavaMailSender javaMailSender) { this.javaMailSender = javaMailSender; } public Configuration getConfiguration() { return configuration; } public void setConfiguration(Configuration configuration) { this.configuration = configuration; } }
模板文件如下:
然后在看看spring里面是怎么配置的呢?
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <bean id="mailsender" class="org.springframework.mail.javamail.JavaMailSenderImpl"> <property name="host" value="mail.com"></property> <property name="port" value="25"></property> <property name="username" value="jerry"></property> <property name="password" value="123" ></property> <property name="protocol" value="smtp"></property> <property name="defaultEncoding" value="utf-8"></property> <property name="javaMailProperties"> <props> <prop key="mail.smtp.auth">true</prop> </props> </property> </bean> <!-- 配置FreeMarker--> <bean id="freeMarkerConfiguration" class="org.springframework.ui.freemarker.FreeMarkerConfigurationFactoryBean"> <!-- 指定模板文件路徑 --> <property name="templateLoaderPath" value="org/doc/"></property> <!-- 設(shè)置freekMarker環(huán)境變量 --> <property name="freemarkerSettings"> <props> <prop key="default_encoding">UTF-8</prop> </props> </property> </bean> <!-- 簡(jiǎn)單郵件 --> <bean id="simpleMailsendService" class="org.service.impl.SimpleMailsendServiceImpl"> <property name="sender" ref="mailsender"></property> </bean> <!-- html和帶附件的郵件 --> <bean id="AttMailsendService" class="org.service.impl.AttMailsendServiceImpl"> <property name="javaMailSender" ref="mailsender"></property> </bean> <!-- 使用模板發(fā)送郵件--> <bean id="createMatterService" class="org.service.impl.CreateMatterServiceImpl"> <property name="configuration" ref="freeMarkerConfiguration"></property> <property name="javaMailSender" ref="mailsender"></property> </bean> </beans>
當(dāng)前時(shí)間已經(jīng)是00點(diǎn)多了,又累又困,我就不詳細(xì)解釋這個(gè)applicationContexct.xml里面的內(nèi)容了,里面有注釋,看不懂的可以評(píng)論,我第一時(shí)間改進(jìn)!
接著我們測(cè)試一下:
TestMail:
package org.test; import org.junit.Test; import org.service.IMailsendService; import org.service.impl.Mail; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestMail { @Test public void testMail() { ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); //簡(jiǎn)單郵件 //IMailsendService mailsendService=(IMailsendService) ctx.getBean("simpleMailsendService"); //復(fù)雜郵件 //IMailsendService mailsendService=(IMailsendService) ctx.getBean("AttMailsendService"); //使用模板的文件 IMailsendService mailsendService=(IMailsendService) ctx.getBean("createMatterService"); mailsendService.sendMessage(); System.out.println("發(fā)送成功!"); } }
注明一下:簡(jiǎn)單郵件是直接發(fā)的文本內(nèi)容,復(fù)雜郵件是包含html格式和附件的,模板發(fā)送是html格式的另一種方式,我們來(lái)看看運(yùn)行的結(jié)果:
先看看帶附件,還有html格式的郵件:
接下來(lái)是簡(jiǎn)單郵件:
接下來(lái)的一種是使用模板發(fā)送郵件,用戶名是動(dòng)態(tài)上去的:
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
網(wǎng)頁(yè)名稱:使用spring實(shí)現(xiàn)郵件的發(fā)送實(shí)例(含測(cè)試,源碼,注釋)
本文路徑:http://chinadenli.net/article40/ghoceo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、微信小程序、網(wǎng)站收錄、關(guān)鍵詞優(yōu)化、品牌網(wǎng)站制作、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)