spring官方提供了spring-boot-starter-mail来整合邮件发送功能,本质上还是利用了JavaMailSender类。
首先我们要在项目中引入相关依赖
- <parent >
- <groupId> org.springframework.boot </groupId >
- <artifactId> spring-boot-starter-parent </artifactId>
- <version>1.4.1.RELEASE</version>
- </parent >
- <dependencies>
- <!--邮件发送功能依赖-->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-mail</artifactId>
- </dependency>
- <!--测试依赖-->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-test</artifactId>
- </dependency>
- </dependencies>
- </project>
application.yml配置如下
- spring:
- mail:
- protocol: smtp #smtp是邮件发送协议,pop3和imap是邮件接收协议。因为我们要发送邮件,因此是smtp
- host: smtp.126.com #邮件发送服务器的主机,这里采用的是126邮箱来发送邮件
- port: 25 #邮件发送服务器的端口
- auth: true #一般情况下,发送邮件都是要进行验证
- username: tianshouzhi@126.com #邮件发送服务器的用户名
- password: your password #密码
新建com.tianshouzhi.springboot.Application类
- @SpringBootApplication
- public class Application {
- public static void main(String[] args) {
- SpringApplication.run(Application.class,args);
- }
- }
新建测试类EmailTest
- @RunWith(SpringJUnit4ClassRunner. class)
- @SpringBootTest(classes=Application. class)
- public class EmailTest {
- @Autowired
- private JavaMailSender javaMailSender;
- @Test
- public void testSend(){
- SimpleMailMessage message = new SimpleMailMessage();
- message.setFrom("tianshouzhi@126.com");//发送者.
- message.setTo("592144098@qq.com");//接收者.
- message.setSubject("测试邮件(邮件主题)");//邮件主题.
- message.setText("这是邮件内容");//邮件内容.
- javaMailSender.send(message);//发送邮件
- }
- }
这里是通过126邮箱发送给qq邮箱。发送效果如下:
这里列出常见的几个邮件服务器的相关信息。因为我们是发送邮件,只需要关注smtp协议即可。
163邮箱的收取邮件支持POP/IMAP两种协议,发送邮件采用SMTP协议,收件和发件均使用SSL协议来进行加密传输,采用SSL协议需要单独对帐户进行设置。采用SSL协议和非SSL协议时端口号有所区别,参照下表的一些常见配置组合: