Spring实现邮件发送功能

2025-05-27 0 35

前言:以前都是直接用Java自带的邮件工具发送邮件,现在Spring帮我们做了封装,提供了更好用更简单的发送邮件工具JavaMailSender,关于邮件服务器的设置就不在这里说了,直接去QQ邮箱设置下就好,下面看下主要的步骤:

步骤一、添加发送邮件相关Maven依赖

?

1

2

3

4

5

6

7

8

9

10

11
<!-- Spring 邮件发送 -->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context-support</artifactId>

<version>4.3.2.RELEASE</version>

</dependency>

<dependency>

<groupId>javax.mail</groupId>

<artifactId>mail</artifactId>

<version>1.4.7</version>

</dependency>

步骤二、添加相关Spring配置,创建一个spring-mail.xml(如果是Spring-Boot请无视),内容如下:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24
<?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:context="http://www.springframework.org/schema/context"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd ">

<!-- Spring JavaMailSender -->

<bean class="org.springframework.mail.javamail.JavaMailSenderImpl">

<property name="host" value="smtp.qq.com"></property>

<!-- 或许你可以用465端口,默认的25不适合 -->

<property name="port" value="587"/>

<property name="protocol" value="smtp"/>

<property name="username" value="******@qq.com"></property>

<!-- 这里的是你在QQ邮箱发送开通SMTP短信后,获取的授权码 -->

<property name="password" value="******"></property>

<property name="defaultEncoding" value="UTF-8"/>

<property name="javaMailProperties">

<props>

<prop key="mail.smtp.auth">true</prop>

<prop key="mail.smtp.timeout">25000</prop>

</props>

</property>

</bean>

</beans>

步骤三、创建具体的邮件发送工具类

?

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
/**

* 基于Spring的JavaMailSender的邮件发送工具类

* @author simon

*

*/

@Component

public class EmailSender {

@Autowired

private JavaMailSender javaMailSender;

private static EmailSender emailSender;

@PostConstruct

public void init() {

emailSender = this;

emailSender.javaMailSender= this.javaMailSender;

}

/**

* 发送简单的文本邮件

* @param sendTo 收件人组

* @param subject 主题

* @param content 文本内容

*/

public static void sendSimpleMessage(String sendFrom, String[] sendTo, String subject, String textcontent) {

SimpleMailMessage mail = new SimpleMailMessage();

mail.setFrom(sendFrom);

mail.setTo(sendTo);

mail.setSubject(subject);

mail.setText(textcontent);

//发送

emailSender.javaMailSender.send(mail);

}

/**

* 发送HTML内容格式的邮件

* @param sendFrom

* @param sendTo 收件人组

* @param subject 主题

* @param htmlContent HTML内容

* @throws Exception

*/

public static void sendHtmlMessage(String sendFrom, String[] sendTo, String subject, String htmlContent) throws Exception {

MimeMessage mimeMessage = emailSender.javaMailSender.createMimeMessage();

MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage);

mimeMessageHelper.setFrom(sendFrom);

mimeMessageHelper.setTo(sendTo);

mimeMessageHelper.setSubject(subject);

// true 表示启动HTML格式的邮件

mimeMessageHelper.setText(htmlContent, true);

// 发送邮件

emailSender.javaMailSender.send(mimeMessage);

}

}

步骤四、创建单元测试测试发送邮件

?

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
/**

* 邮件发送测试类

*

* @author simon

*

*/

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration("classpath:applicationContext.xml")

public class EmailSenderTest {

@Test

public void testSend() throws Exception {

String sendFrom = "1317492210@qq.com";

String[] sendTo = {"zhaosheng@hitencent.com"};

String subject = "Spring自带JavaMailSender发送的HTML邮件";

StringBuilder htmlContent = new StringBuilder()

.append("<html>")

.append("<head>")

.append("<title>")

.append("Spring自带JavaMailSender发送的HTML邮件")

.append("</title>")

.append("</head>")

.append("<body>")

.append("您好!陌生人<p/>")

.append("</body>")

.append("</html>");

EmailSender.sendHtmlMessage(sendFrom, sendTo, subject, htmlContent.toString());

System.out.println("邮件发送成功.");

}

OK,到这里全部的步骤就结束了,是不是比Java Mail简单方便很多哉,赶紧自己动手试试吧!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

原文链接:http://www.cnblogs.com/gdufs/p/7844484.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 Spring实现邮件发送功能 https://www.kuaiidc.com/77464.html

相关文章

发表评论
暂无评论