SpringBoot中已有发邮件的工具包,只需要引用即可使用

1,pom引用

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>

2,在配置文件中配置邮件服务器信息。这里需要一个可用的邮件服务器。

spring.mail.default-encoding=utf-8
spring.mail.host=mail.xxxx.com
spring.mail.username=xxxx@xxxx.com
spring.mail.password=password

3,编写发邮件service,调用JavaMailSender.send()即可,支持简单文本邮件、富文本邮件、html邮件

 Service代码如下

 1 import org.springframework.beans.factory.annotation.Autowired;
 2 import org.springframework.beans.factory.annotation.Value;
 3 import org.springframework.core.io.FileSystemResource;
 4 import org.springframework.mail.MailException;
 5 import org.springframework.mail.SimpleMailMessage;
 6 import org.springframework.mail.javamail.JavaMailSender;
 7 import org.springframework.mail.javamail.MimeMessageHelper;
 8 import org.springframework.stereotype.Service;
 9 
10 import javax.mail.MessagingException;
11 import javax.mail.internet.MimeMessage;
12 import java.io.File;
13 
14 @Service
15 public class EmailService {
16     @Autowired
17     private JavaMailSender mailSender;
18 
19     @Value("${spring.mail.username}")
20     private String from;
21 
22     /**
23      * 发送简单文本邮件
24      * @param content 邮件正文
25      * @param subject 邮件主题
26      * @param to 邮件接收地址
27      * */
28     public void sendSimpleMail(String to, String subject, String content) throws MailException {
29         System.out.println("-----from:" + from);
30         System.out.println("-----to:" + to);
31         System.out.println("-----subject:" + subject);
32         System.out.println("-----content:" + content);
33 
34         SimpleMailMessage message = new SimpleMailMessage();
35         message.setFrom(from);
36         message.setTo(to);
37         message.setSubject(subject);
38         message.setText(content);
39         mailSender.send(message);
40     }
41 
42     /**
43      * 发送富文本邮件
44      * @param content 邮件正文
45      * @param rscId 设置在header头中的文件ID 
46      * @param rscPath 图片路径
47      * @param subject 邮件主题
48      * @param to 邮件接收地址
49      * */
50     public void sendRichTextMail(String to, String subject, String content, String rscPath, String rscId) throws MessagingException {
51         //MimeMessageHelper支持发送复杂邮件模板,支持文本、附件、HTML、图片等。
52         //如果需要发送多张图片,可以改变传参方式,使用集合添加多个<img src='cid:rscId'>和helper.addInline(rscId, res);即可实现
53 
54         MimeMessage message = mailSender.createMimeMessage();
55         MimeMessageHelper helper = new MimeMessageHelper(message, true);
56         helper.setFrom(from);
57         helper.setTo(to);
58         helper.setSubject(subject);
59         helper.setText(content, true);
60         File file = new File(rscPath);
61         FileSystemResource res = new FileSystemResource(file);
62         helper.addInline(rscId, res);
63 
64         mailSender.send(message);
65 
66     }
67 
68     /**
69      * 发送HTML邮件
70      * @param to 邮件接收地址
71      * @param subject 邮件主题
72      * @param content 邮件正文
73      * */
74     public void sendHtmlMail(String to, String subject, String content) throws MessagingException {
75         MimeMessage message = mailSender.createMimeMessage();
76         //true 表⽰示需要创建⼀一个 multipart message
77         MimeMessageHelper helper = new MimeMessageHelper(message, true);
78         helper.setFrom(from);
79         helper.setTo(to);
80         helper.setSubject(subject);
81         helper.setText(content, true);
82         mailSender.send(message);
83     }
84 }
View Code

相关文章: