一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 使用spring實現郵件的發送實例(含測試,源碼,注釋)

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

2020-11-02 17:50一步一步完善 Java教程

本篇文章主要介紹了使用spring實現郵件的發送實例,詳細的介紹了使用spring配置實現郵件發送,含測試,源碼,注釋,有興趣的可以下

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

先寫個接口

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/**
* @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
 * 類描述:
 * 創建人:Mu Xiongxiong
 * 修改備注:
 * @version 
 
 */
public interface IMailsendService {
 
 /**
  *
 * @Title: sendMessage
 * @Description: 該方法的主要作用:發送郵件
 * @param 設定文件
 * @return 返回類型:void
 * @throws
  */
 void sendMessage();
}

然后在寫個實現該接口的類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/**
* @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實現對郵件的發送
 * 創建人:Mu Xiongxiong 
 * 修改備注:
 * @version 
 
 */
public class AttMailsendServiceImpl implements IMailsendService {
 
 private JavaMailSender javaMailSender;
  
 /**(非 Javadoc)
  * <p>Title: sendMessage</p>
  * <p>Description(描述):發送帶附件的郵件 </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("[email protected]");
   helper.setTo("[email protected]");
   helper.setSubject("帶附件的郵件");
   //普通格式的
   //helper.setText("發送一個附件內容!<a href='http://www.baidu.com'>百度搜索</a>");
   //html格式的
   helper.setText("發送一個附件內容!<a href='http://www.baidu.com'>百度搜索</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 異常執行塊!
   e.printStackTrace();
  } catch (IOException e) {
   // TODO 異常執行塊!
   e.printStackTrace();
  }
   
 }
 
 public JavaMailSender getJavaMailSender() {
  return javaMailSender;
 }
 
 public void setJavaMailSender(JavaMailSender javaMailSender) {
  this.javaMailSender = javaMailSender;
 }
 
}

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

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

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

我直接上實現類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/**
* @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
 * 類描述:
 * 創建人:Mu Xiongxiong
 * 修改備注:
 * @version 
 
 */
public class CreateMatterServiceImpl implements IMailsendService {
 
 private JavaMailSender javaMailSender;
 private Configuration configuration;
  
 /**(非 Javadoc)
  * <p>Title: sendMessage</p>
  * <p>Description(描述):使用后模板發送郵件 </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("[email protected]");
   helper.setTo("[email protected]");
   helper.setSubject("使用模板進行發送郵件");
   helper.setText(getText(),true);
   //從模板里面讀取
   javaMailSender.send(message);
  } catch (MessagingException e) {
   // TODO 異常執行塊!
   e.printStackTrace();
  }
 }
  
 //讀取模板
 private String getText(){
  String txt = "";
  try {
   Template template = configuration.getTemplate("mail.ftl");
   //通過map傳遞動態數據
   Map map = new HashMap();
   map.put("username","雄雄");
   //解析模板文件
   txt = FreeMarkerTemplateUtils.processTemplateIntoString(template,map);
   } catch (IOException e) {
   // TODO 異常執行塊!
   e.printStackTrace();
  } catch (TemplateException e) {
    // TODO 異常執行塊!
    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實現郵件的發送實例(含測試,源碼,注釋)

然后在看看spring里面是怎么配置的呢?

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?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環境變量 -->
  <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>
 <!-- 使用模板發送郵件-->
 <bean id="createMatterService" class="org.service.impl.CreateMatterServiceImpl">
  <property name="configuration" ref="freeMarkerConfiguration"></property>
  <property name="javaMailSender" ref="mailsender"></property>
 </bean>
  
</beans>

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

接著我們測試一下:

TestMail:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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("發送成功!");
 }
  
  
}

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

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

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

接下來是簡單郵件:

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

接下來的一種是使用模板發送郵件,用戶名是動態上去的:

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://blog.csdn.net/qq_34137397/article/details/72814549

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品手机在线1卡二卡3卡四卡 | 高清毛片aaaaaaaaa片 | 深夜在线小视频 | 肉文np高h| 午夜神器18以下不能进免费 | 婷婷精品进入 | 国产精品日韩欧美一区二区 | 国产精品久久久久久久福利院 | 四虎永久免费地址在线观看 | 狐媚小说 | 99久久精品免费看国产一区 | 日本高清在线看免费观看 | 日本亚洲欧洲高清有码在线播放 | 校园春色自拍偷拍 | 日本乱子 | b片在线观看| 亚洲欧美日韩精品久久亚洲区 | 亚洲男人精品 | 草草草在线 | 4s4s4s4s色大众影视 | 丁香六月婷婷激情 | 国产精品手机视频一区二区 | 免费理伦片在线观看全网站 | 欧美精品黑人巨大在线播放 | 日本黄视频在线播放 | 91久久偷偷做嫩草影院免费 | 亚洲爆操| 亚洲欧美天堂 | 欧美yyy| 亚洲国产精品自在现线让你爽 | 精品亚洲视频在线 | 狠狠色婷婷日日综合五月 | 91成人免费观看 | 日韩视频一区二区三区 | 韩国久久| 国产亚洲欧美在线中文bt天堂网 | 国产黄频在线观看高清免费 | 国产欧美国产综合第一区 | 高清在线观看mv的网址免费 | 闺蜜高h | 国产东北3p真实在线456视频 |