springboot实现邮件发送

简介: Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。首先先引入邮件发送所需要的依赖版本1.5.1(Jan 30, 2017更新的) org.springframework.boot spring-boot-starter-mail 1.5.1.RELEASE在application.properties中配置相应的属性内容。

Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。
首先先引入邮件发送所需要的依赖
版本1.5.1(Jan 30, 2017更新的)

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

application.properties中配置相应的属性内容。我把属性文件改为yaml文件
host: smtp.qq.com是发件人使用发邮件的电子信箱服务器,如果是163邮箱就改成host: smtp.163.com

spring:
    mail:
       host: smtp.qq.com
       username:  发送方邮箱
       password:  QQ邮箱的话就是发送方的授权码
       properties:
          mail:
            smtp:
              auth: true//这样才能通过验证
              starttls:
                  enable: true
                  required: true

编写邮件发送测试类

@RunWith(SpringRunner.class)
@SpringBootTest
public class ApplicationTests {
    @Autowired
    private JavaMailSender javaMailSender;
@Test
    public void sendAttachmentsMail() throws Exception {
        MimeMessage mimeMessage = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
        helper.setFrom("发送方邮箱");
        helper.setTo("接收方邮箱");
        helper.setSubject("主题:有附件");
        helper.setText("有附件的邮件");
        mailSender.send(mimeMessage);
    }

由于Spring Boot的starter模块提供了自动化配置,所以在引入了spring-boot-starter-mail依赖之后,会根据配置文件中的内容去创建JavaMailSender实例,因此我们可以直接在需要使用的地方直接@Autowired来引入邮件发送对象。

然后运行后可能会出现这个异常
org.springframework.mail.MailAuthenticationException: Authentication failed; nested exception is javax.mail.AuthenticationFailedException: 530 Error: A secure connection is requiered(such as ssl).
More information at http://service.mail.qq.com/cgi-bin/help?id=28
原因:
发送方必须要开启smtp,获取到的授权码,开启方法如下:
http://service.mail.qq.com/cgi-bin/help?subtype=1&&id=28&&no=1001256

执行测试:


Paste_Image.png
目录
相关文章
|
4月前
|
前端开发 JavaScript Java
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
本文介绍了一个结合SpringBoot和Python的实用功能,旨在监控iPhone 15的库存状态并通过邮件提醒用户。系统采用SpringBoot监听苹果官网API,解析JSON数据判断是否有货,并展示最近的库存记录。此外,还能自动触发Selenium+Python脚本实现自动化购买。文中详细介绍了技术栈、接口分析、邮件配置及自动化脚本的设置方法。该项目不仅适用于熟悉后端开发的人员,也适合回顾Layui和Jquery等前端技术。
57 0
【实操】SpringBoot监听Iphone15邮件提醒,Selenium+Python自动化抢购脚本
消息中间件 缓存 监控
144 0
|
5月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue+uniapp的邮件过滤系统的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue+uniapp的邮件过滤系统的详细设计和实现(源码+lw+部署文档+讲解等)
|
6月前
|
安全 Java Maven
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
在 Spring Boot 中实现邮件发送功能可以通过集成 Spring Boot 提供的邮件发送支持来完成
70 2
|
6月前
|
JavaScript Java 测试技术
基于SpringBoot+Vue的邮件过滤系统的详细设计和实现
基于SpringBoot+Vue的邮件过滤系统的详细设计和实现
67 1
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp的邮件过滤系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp的邮件过滤系统附带文章源码部署视频讲解等
37 0
|
5月前
|
Java API Spring
Spring Boot中如何实现邮件发送功能
Spring Boot中如何实现邮件发送功能
|
6月前
|
Java API Spring
Spring Boot中如何实现邮件发送功能
Spring Boot中如何实现邮件发送功能
|
6月前
|
Java
springboot使用邮件服务
springboot使用邮件服务
119 0
|
6月前
|
Java 数据安全/隐私保护
Springboot拓展之整合邮件 JavaMail的使用与实操
Springboot拓展之整合邮件 JavaMail的使用与实操
65 0
下一篇
DataWorks