欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用spring實現(xiàn)郵件的發(fā)送實例(含測試,源碼,注釋)

 更新時間:2017年05月31日 11:25:44   作者:一步一步完善  
本篇文章主要介紹了使用spring實現(xiàn)郵件的發(fā)送實例,詳細的介紹了使用spring配置實現(xiàn)郵件發(fā)送,含測試,源碼,注釋,有興趣的可以下

此篇主要講的是使用spring配置實現(xiàn)郵件發(fā)送,與之前的底層實現(xiàn)簡便了不少,只需要幾個配置就可以了,那么請往下看:

先寫個接口

 /** 
* @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; 
 
 /** 
 *  
 * 項目名稱:spring_Schop8 
 * 類名稱:IMailserdService 
 * 類描述: 
 * 創(chuàng)建人:Mu Xiongxiong 
 * 修改備注: 
 * @version  
 *  
 */ 
public interface IMailsendService { 
 
 /** 
  * 
 * @Title: sendMessage 
 * @Description: 該方法的主要作用:發(fā)送郵件 
 * @param 設定文件 
 * @return 返回類型:void 
 * @throws 
  */ 
 void sendMessage(); 
} 

然后在寫個實現(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; 
 
 /** 
 *  
 * 項目名稱:spring_Schop8 
 * 類名稱:AttMailsendServiceImpl 
 * 類描述: 使用spring實現(xiàn)對郵件的發(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ā)送一個附件內(nèi)容!<a ); 
   //html格式的 
   helper.setText("發(fā)送一個附件內(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; 
 } 
 
} 

上面的這個類還可以發(fā)送帶附件的郵件,里面含兩個附件(文件),我弄上來吧:

還有一種是使用模板發(fā)送帶html格式的郵件:

我直接上實現(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; 
 
 /** 
 *  
 * 項目名稱: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("使用模板進行發(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"); 
   //通過map傳遞動態(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> 
  <!-- 設置freekMarker環(huán)境變量 --> 
  <property name="freemarkerSettings"> 
   <props> 
    <prop key="default_encoding">UTF-8</prop> 
   </props> 
  </property> 
 </bean> 
 <!-- 簡單郵件 --> 
 <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> 

當前時間已經(jīng)是00點多了,又累又困,我就不詳細解釋這個applicationContexct.xml里面的內(nèi)容了,里面有注釋,看不懂的可以評論,我第一時間改進!

接著我們測試一下:

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"); 
  //簡單郵件 
  //IMailsendService mailsendService=(IMailsendService) ctx.getBean("simpleMailsendService"); 
   
  //復雜郵件 
  //IMailsendService mailsendService=(IMailsendService) ctx.getBean("AttMailsendService"); 
   
  //使用模板的文件 
  IMailsendService mailsendService=(IMailsendService) ctx.getBean("createMatterService"); 
  mailsendService.sendMessage(); 
  System.out.println("發(fā)送成功!"); 
 } 
  
  
} 

注明一下:簡單郵件是直接發(fā)的文本內(nèi)容,復雜郵件是包含html格式和附件的,模板發(fā)送是html格式的另一種方式,我們來看看運行的結果:

先看看帶附件,還有html格式的郵件:


接下來是簡單郵件:


接下來的一種是使用模板發(fā)送郵件,用戶名是動態(tài)上去的:

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Java 重入鎖和讀寫鎖的具體使用

    Java 重入鎖和讀寫鎖的具體使用

    這篇文章主要介紹了Java 重入鎖和讀寫鎖的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • java利用JAXB實現(xiàn)對象和xml互相轉(zhuǎn)換方法與實例詳解

    java利用JAXB實現(xiàn)對象和xml互相轉(zhuǎn)換方法與實例詳解

    這篇文章主要介紹了java利用JAXB實現(xiàn)對象和xml互相轉(zhuǎn)換方法與實例詳解,需要的朋友可以參考下
    2020-02-02
  • java中的Reference類型用法說明

    java中的Reference類型用法說明

    這篇文章主要介紹了java中的Reference類型用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • Java中private關鍵字詳細用法實例以及解釋

    Java中private關鍵字詳細用法實例以及解釋

    這篇文章主要給大家介紹了關于Java中private關鍵字詳細用法實例以及解釋的相關資料,在Java中private是一種訪問修飾符,它可以用來控制類成員的訪問權限,文中將用法介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • SpringBoot使用validation-api實現(xiàn)對枚舉類參數(shù)校驗的方法

    SpringBoot使用validation-api實現(xiàn)對枚舉類參數(shù)校驗的方法

    這篇文章主要介紹了SpringBoot使用validation-api實現(xiàn)對枚舉類參數(shù)校驗,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • Maven中兩個命令clean 和 install的使用

    Maven中兩個命令clean 和 install的使用

    Maven是一個項目管理和自動構建工具,clean命令用于刪除項目中由先前構建生成的target目錄,install命令用于將打包好的jar包安裝到本地倉庫中,供其他項目依賴使用,下面就來詳細的介紹一下這兩個命令
    2024-09-09
  • 基于Java8并行流(parallelStream)的注意點

    基于Java8并行流(parallelStream)的注意點

    這篇文章主要介紹了Java8并行流(parallelStream)的注意點,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java實現(xiàn)銀行ATM系統(tǒng)

    Java實現(xiàn)銀行ATM系統(tǒng)

    這篇文章主要為大家詳細介紹了Java實現(xiàn)銀行ATM系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • springboot 整合fluent mybatis的過程,看這篇夠了

    springboot 整合fluent mybatis的過程,看這篇夠了

    這篇文章主要介紹了springboot 整合fluent mybatis的過程,配置數(shù)據(jù)庫連接創(chuàng)建數(shù)據(jù)庫的詳細代碼,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2021-08-08
  • Java 中的 xx ≠ null 是什么新語法

    Java 中的 xx ≠ null 是什么新語法

    Java中null是一個關鍵字,用來標識一個不確定的對象。因此可以將null賦給引用類型變量,但不可以將null賦給基本類型變量。本文給大家分享Java 中的 xx ≠ null 是什么新語法,感興趣的朋友一起看看吧
    2021-06-06

最新評論