大家好!今天给大家分享的知识是Springboot整合JavaMail来发送邮件。
一、JavaMail是什么?
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口 。它是Sun发布的用来处理email的API。 它可以方便地执行一些常用的邮件传输。 我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。简单理解就是可以用它来实现用java来发送邮件。
二、配置并运行
1.配置
还是老样子,先来建项目,然后导入入JavaMail的依赖。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
导入依赖项之后需要配置yml文件。
在这里有几个点是必填的。第一个host的意思是我们用什么邮箱来进行发送,前面加上smtp协议,第二个username是我们发送邮件的邮箱是哪个,还有第三个密码也是必填的。 这个password不是随便乱写的 ,在这里我用的是QQ邮箱,是需要从QQ邮箱来获取这个密码的。下面我来告诉大家。
首先打开QQ邮箱,点击设置
然后点击账户,往下滑。
然后找到SMTP服务,点击开启,就会出现一个属于你自己的密码,我们将出现的密码复制过来即可。 (由于我已经开启了,就不再演示了)
这样就完成了前期的配置工作。
2.发送邮件
我们先来建一个Service层,并且建一个实现类。
先来写接口,代码如下:
package com.example.springboot_javaemail.service;
public interface SendMailService {
void SendMail();
}
实现类,代码如下:
package com.example.springboot_javaemail.service.impl;
import com.example.springboot_javaemail.service.SendMailService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;
@Service
public class SendMailServiceImpl implements SendMailService {
@Autowired
private JavaMailSender javaMailSender; //javamail对象
//发送人
private String from = "[email protected]";
//接收人
private String to ="[email protected]";
//标题
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); //内容
//message.setSentDate(); //定时发送
javaMailSender.send(message); //发送
}
}
在这里需要再创建一个SimpleMailMessage对象,要知道SimpleMailMessage是值对象,封装了一些简单的属性,如from、to、subject、text等等,SimpleMailMessage只能用来发送text格式的邮件 。
然后我们来测试一下
package com.example.springboot_javaemail;
import com.example.springboot_javaemail.service.SendMailService;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class SpringbootJavaemailApplicationTests {
@Autowired
private SendMailService service;
@Test
void contextLoads() {
service.SendMail();
}
}
可以看到,成功发送邮件。
总结
本文仅仅说了发送简单文本邮件,学起来还是比较简单的,有不足的地方请指出!谢谢各位的观看!!