SpringBoot整合JavaMail 可以发送单纯的文字邮件 也可发送有html文件或者发送压缩包多文件邮件
【摘要】
文章目录
导入坐标配置文件发送简单邮件发送多部件邮件
导入坐标
<dependency>
<groupId>org.springframew...
导入坐标
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
- 1
- 2
- 3
- 4
配置文件
host指的是
spring:
mail:
host: smtp.qq.com
password: qkzgrtozzrwncbed
username: 212184206@qq.com
- 1
- 2
- 3
- 4
- 5
host指的是你用哪种方式发送邮件
username指的是使用哪一个邮箱发送邮件
password指的是
发送简单邮件
接口
package com.itheima.service;
public interface SendMailService {
void sendMail();
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
实现类
使用的是JavaMailSender对象,然后使用他的.send方法,参数是message,message包括了一封邮箱的基本内容,包括邮箱发送者,邮箱接受者,邮箱主题,邮箱正文内容。
package com.itheima.service.impl;
import com.itheima.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Component;
@Component
public class SendMailServiceImpl2 implements SendMailService {
@Autowired
private JavaMailSender javaMailSender;
// 发送人
private String from = "212184206@qq.com";
// 接收人
private String to = "2239263778@qq.com";
// 标题
private String subject = "测试邮箱";
// 正文
private String context = "测试邮箱正文内容";
@Override
public void sendMail() {
SimpleMailMessage message = new SimpleMailMessage();
message.setFrom(from);
message.setTo(to);
message.setSubject(subject);
message.setText(context);
javaMailSender.send(message);
}
}
- 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
测试类
这里要注意的是:虽然成员变量是接口,但是这个@Autowired注解,就会使得Spring容器中的实现类会自动装配到这个成员变量中,就相当于是左边是接口,右边是实现类。
package com.itheima;
import com.itheima.service.SendMailService;
import com.itheima.service.impl.SendMailServiceImpl;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class Springboot22MailApplicationTests {
@Autowired
private SendMailService sendMailService;
@Test
void contextLoads() {
sendMailService.sendMail();
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
发送多部件邮件
- 在正文中添加html文件
- 在正文中添加压缩附件等。
还是使用JavaMailSender创建对象,然后使用这个对象的javaMailSender.createMimeMessage(); 方法创建message对象,之后就是使用MimeMessageHelper helper创建help对象,之后还是设置信息的四个内容,如果传的是html文件,就要在helper.setText(context,true); 中true,如果是发送附件,就要在helper对象中添加true。
package com.itheima.service.impl;
import com.itheima.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMailMessage;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;
@Component
public class SendMailServiceImpl implements SendMailService {
@Autowired
private JavaMailSender javaMailSender;
// 发送人
private String from = "212184206@qq.com";
// 接收人
private String to = "2239263778@qq.com";
// 标题
private String subject = "测试邮箱";
// 正文
private String context = "<a href = 'https://www.baidu.com/'>点开有惊喜</a>";
@Override
public void sendMail() {
MimeMessage message = javaMailSender.createMimeMessage(); // 这行代码就是都有的 只不过换成了createMimeMeaasge
try {
// 这行代码就是发送多部件添加的 -- 后面的true就是开启多部件(压缩包)
MimeMessageHelper helper = new MimeMessageHelper(message,true);
helper.setFrom(from);
helper.setTo(to);
helper.setSubject(subject);
helper.setText(context,true); // 这行代码的true就是使得邮件中可以使用html文件
// 添加附件
File f1 = new File("D:\\study\\SpringBoot2\\springboot_22_mail\\src\\main\\resources\\a.jpg");
helper.addAttachment(f1.getName(),f1); // 添加附件
} catch (MessagingException e) {
e.printStackTrace();
}
javaMailSender.send(message);
}
}
- 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
文章来源: blog.csdn.net,作者:花花叔叔,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_52077949/article/details/123052981
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)