项目需求:邮件异步发送结果给用户
项目框架:SpringBoot
实现:

  • 第一步:

在pom文件中导入相关的依赖

 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
  • 第二步:

编写发送邮件的工具类,并在配置文件中配置邮箱服务器地址

@Component
public class SendEmailTool {@AutowiredJavaMailSender jms;@Value("${spring.mail.username}")String sendUserEmail;/*** 发送邮件* @param data 加密主体*/@Asyncpublic  void sendEmail(String data){//建立邮件消息SimpleMailMessage mainMessage = new SimpleMailMessage();//发送者mainMessage.setFrom(sendUserEmail);//接收者mainMessage.setTo("xxx@xxx.com.cn");//发送的标题mainMessage.setSubject("用户信息");String content = "尊敬的用户: \n"+"\r\n"+"    您好! \n";mainMessage.setText(content);jms.send(mainMessage);System.out.println("用户信息已成功发送至邮箱");}
}

配置文件,使用126邮箱,其他邮箱自行百度

spring.mail.host=smtp.126.com
spring.mail.port=465
spring.mail.properties.mail.smtp.ssl.enable=true
spring.mail.username=xxx@126.com
spring.mail.password=password
spring.mail.default-encoding=UTF-8
spring.mail.protocol=smtp

踩坑:
1 Could not autowire. No beans of ‘JavaMailSender’ type found.

debug会报空指针异常

解决:
1 把@Autowirde改成@Resource

相同点:
@Resource的作用相当于@Autowired,均可标注在字段或属性的setter方法上。

不同点:

(1)提供方:@Autowired是由org.springframework.beans.factory.annotation.Autowired提供,换句话说就是由Spring提供;@Resource是由javax.annotation.Resource提供,即J2EE提供,需要JDK1.6及以上。

(2)注入方式:@Autowired只按照byType 注入;@Resource默认按byName自动注入,也提供按照byType 注入;

(3)属性 :@Autowired按类型装配依赖对象,默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。@Resource有两个中重要的属性:name和type。name属性指定byName,如果没有指定name属性,当注解标注在字段上,即默认取字段的名称作为bean名称寻找依赖对象,当注解标注在属性的setter方法上,即默认取属性名作为bean名称寻找依赖对象。需要注意的是,@Resource如果没有指定name属性,并且按照默认的名称仍然找不到依赖对象时,
@Resource注解会回退到按类型装配。但一旦指定了name属性,就只能按名称装配了。

2 使用@Autowired(required=false)

  • 第三步:查看邮件是否异步发送

在主线程和发送邮件的方法中加入如下代码:

     Thread t = Thread.currentThread();String name = t.getName();System.out.println("name=" + name);

启动项目测试结果:

异步执行成功!

Springboot集成JavaMailSender发送邮件相关推荐

  1. SpringBoot使用JavaMailSender发送邮件:com.sun.mail.smtp.SMTPSendFailedException: 451 MI:SFQ 163 smtp7

    SpringBoot使用JavaMailSender发送邮件时,报错如下: 2020-08-08 07:32:21,237 ERROR --- [http-nio-8080-exec-1] cn.co ...

  2. Springboot企业邮箱发送邮件

    1.这里以腾讯企业邮箱为例 2.首先确定springboot版本,目前使用1.5.7, 3.添加邮件依赖 <dependency><groupId>org.springfram ...

  3. SpringBoot学习历程(十一):SpringBoot2.X集成mail发送邮件

    SpringBoot学习历程(十一):SpringBoot2.X集成mail发送邮件 前言 1. 引入依赖 2. 设置邮件配置信息 3. 发送邮件 3.1 发送普通文本邮件 3.2 发送HTML格式内 ...

  4. SpringBoot集成EMail

    SpringBoot集成EMail 在大部分项目中,我们都会经常有用到邮件工具:不管是邮件验证码.邮件注册校验.预警通知等服务,都会使用到我们的email来发送邮件.下面我们就来教大家如何使用Spri ...

  5. SpringBoot集成邮箱功能并使用Knife4j测试

    SpringBoot集成邮箱功能并使用Knife4j测试 哔哩哔哩链接:https://www.bilibili.com/video/BV1uA411N7cm 1.获取163或QQ邮箱授权码 163邮 ...

  6. SpringBoot集成163邮件发送详细配置,从163邮箱开始配置

    SpringBoot集成163邮件发送详细配置,从163邮箱开始配置 1.登录163邮箱 2.配置163邮箱 3.开始编写SpringBoot代码 1.创建SpringBoot项目然后引入依赖 2.编 ...

  7. 项目构建之springboot集成lomback.xml,和log4j基于properties方式的日志配置记录

    文章目录 springboot集成lomback.xml 描述 在yml中定义的一些配置信息 创建logback-spring.xml文件 logback-spring.xml配置如下: **log4 ...

  8. 玩转 SpringBoot 2 之发送邮件篇

    前言 通过本文你将了解到SpringBoot 2 中发送邮件使用教程,具体详细内容如下: 发送普通的邮件 发送html格式邮件 发送html 中带图片的邮件 发送带附件的邮件 阅读前需要你必须了解如何 ...

  9. Spring Boot(十二)集成spring-boot-starter-mail发送邮件

    项目GitHub地址 : https://github.com/FrameReserve/TrainingBoot Spring Boot(十二)集成spring-boot-starter-mail发 ...

  10. 三、美团大众点评CAT监控系列文章---Springboot集成CAT并实现邮件告警

    文章目录 一.配置过程 二.相关的参考文档 三.系列文章 一.配置过程 登录自己的cat服务端 默认登录用户名和密码都是 catadmin添加一个监控规则: 如下面的监控规则就是说,如果在一分钟以内访 ...

最新文章

  1. Dreamwerver8下定义表单实现第一个登陆页面
  2. 用python画雪花-python使用turtle库与random库绘制雪花
  3. dubbo基础使用入门
  4. SAP-采购订单交货成本抓取方法
  5. python用变量输出abcd_python中星号变量的几种特殊用法
  6. 计算机科学导论实验考试,计算机科学导论实验指导书
  7. 若依编辑和删除操作按钮不可用怎么办?
  8. 新西兰储备银行数据遭泄露
  9. DirectAdmin安装mod_encoding支持中文
  10. THINKPHP_关联模型MANY_TO_MANY
  11. 103规约测试软件,Protocoltester(国电南自103规约调试软件)
  12. ecshop网店系统简评
  13. 伊家田园帮您划重点!2021年重点强农惠农政策
  14. 自媒体怎么同时多平台发文章?5分钟发到30+自媒体平台上
  15. 教你如何求一个集合的所有非空子集的方差和
  16. 香港区块链贸易融资平台将于9月上线
  17. idea gradle一直卡在initializing gradle projects data终极解决
  18. vscode 主题 One Dark Pro
  19. 开放平台回顾与前景展望
  20. html下拉菜单自动收回,jquery使用hover触发下拉菜单如果为什么有空隙就自动收回?...

热门文章

  1. 使用reportlab生成条码
  2. 移动端 Modal 组件开发杂谈
  3. JSF 2 dropdown box example
  4. SQL注入漏洞与参数化查询
  5. 中国ERP软件发展趋势
  6. 3.用户画像:方法论与工程化解决方案 --- 标签数据存储
  7. 2.用户画像:方法论与工程化解决方案 --- 数据指标体系
  8. 4.企业安全建设指南(金融行业安全架构与技术实践) --- 内控合规管理
  9. 9.iterm 颜色
  10. 11.无限分类表的数据库设计