邮箱发送JavaEmail的使用
JavaMailSenderImpl是Spring官方提供的集成邮件服务的接口和实现类,以简单高效的设计著称,目前是Java后端发送邮件和集成邮件服务的主流工具。
发送邮件: JavaMailSender.send( 带发送的邮件 )
简单邮件:SimpleMailMessage类
附件邮件:借助 MimeMessageHelper 发送MimeMessage
Spring Boot : 开箱即用JavaMailSender。 邮件自动配置类(MailSenderPropertiesConfiguration) 为上下文提供了邮件服务实例(JavaMailSenderImpl), MailProperties提供邮件服务器配置。
spring:
mail:
default-encoding: utf-8
host: smtp.163.com
username: ####@163.com #发送者的邮箱
password: USAHDZJJEZYITFBV #邮箱提供的授权码
protocol: smtp
port: 25
properties:
"mail.smtp.connectiontimeout": 50000
"mail.smtp.timeout": 30000
"mail.smtp.writetimeout": 50000
"mail.debug": true
@Resource
JavaMailSender mailSender;
/**
* 简单邮件SimpleMailMessage类
* 创建对象,
* 设置 收 发 人
* 设置 邮件主题
* 设置 邮件正文
*
* 发送邮件 send
*
*/
@Test
void testSimpleMail() {
SimpleMailMessage simple = new SimpleMailMessage();
simple.setFrom("#@163.com"); //发送者
simple.setTo("#@qq.com"); //接收者
simple.setSubject("一个简单邮件"); //主题
simple.setText("这是我的第一个客户端发送的邮件"); //正文
mailSender.send(simple);
}
//带附件的
@Test
void testAttach() throws MessagingException {
//邮件
MimeMessage mimeMailMessage = mailSender.createMimeMessage();
//使用Helper辅助设置 邮件的参数 true:表示支持附件
MimeMessageHelper helper = new MimeMessageHelper(mimeMailMessage,true);
//使用Helper设置参数
helper.setFrom("#@163.com"); //发送者
helper.setTo("#@qq.com"); //接收者
helper.setSubject("带有正文的邮件"); //主题
helper.setText("请查看附件"); //正文
//添加附件, 一个或多个文件
//参数1 :附件名称 , 参数2:附件文件
helper.addAttachment("手机5月账单", new File("E:\\test.txt"));
//发送邮件
mailSender.send( helper.getMimeMessage() );
}