0%

springboot系列(011)之发送邮件

邮件发送本是一件比较复杂的过程、自从邮件发送被封装到spring-boot-starter-mail.jar中、在spring boot项目中引入spring-boot-starter-mail.jar后发送邮件就是一件相当方便的工作.

一、引入依赖

为了方便引入spring-boot-starter-web.jar

1
2
3
4
5
6
7
8
9
10
11
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
<version>2.1.13.RELEASE</version>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.1.13.RELEASE</version>
</dependency>

二、配置(application.yml)

配置smtp、发送方账号密码。
SMTP地址:腾讯企业邮箱smtp使用smtp.exmail.qq.com;腾讯个人邮箱使用smtp.qq.com;163邮箱使用smtp.163.com

1
2
3
4
5
6
spring:
mail:
host: smtp.qiye.aliyun.com
username: xxx@xx.com
password: xxxxxx

三、使用JavaMailSender

1、发送简易消息体SimpleMailMessage

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
package net.zuze.controller;

import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.mail.MessagingException;

/**
* @author Administrator
* @date 2022/12/5
**/
@RestController
@RequestMapping("/")
@Api("邮件")
public class IndexController {

@Resource
JavaMailSender javaMailSender;

/**
* 发送简易邮件
*/
@PostMapping("sendMail")
public void sendMail() throws MessagingException {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("from@xx.com");
message.setTo("to@xx.com");
message.setSubject("subject-测试");
message.setText("text测试");
javaMailSender.send(message);
}
}

2、发送复杂邮件

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
package net.zuze.controller;

import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import javax.mail.internet.MimeMessage;
import java.io.File;

/**
* @author Administrator
* @date 2022/12/5
**/
@RestController
@RequestMapping("/")
public class IndexController {

@Resource
JavaMailSender javaMailSender;


/**
* 发送复杂邮件
*/
@PostMapping("sendComplexMail")
public void sendComplexMail() throws Exception{
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(message);
messageHelper.setFrom("from@xx.com");
messageHelper.setTo("to@xx.com");
messageHelper.setSubject("subject-测试");
messageHelper.setText("text-测试");
//带附件
messageHelper.addAttachment("attachmentName",new File("attachmentPath"));
}

}