Springboot集成JavaMailSender发送邮件
项目需求:邮件异步发送结果给用户
项目框架: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发送邮件相关推荐
- 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 ...
- Springboot企业邮箱发送邮件
1.这里以腾讯企业邮箱为例 2.首先确定springboot版本,目前使用1.5.7, 3.添加邮件依赖 <dependency><groupId>org.springfram ...
- SpringBoot学习历程(十一):SpringBoot2.X集成mail发送邮件
SpringBoot学习历程(十一):SpringBoot2.X集成mail发送邮件 前言 1. 引入依赖 2. 设置邮件配置信息 3. 发送邮件 3.1 发送普通文本邮件 3.2 发送HTML格式内 ...
- SpringBoot集成EMail
SpringBoot集成EMail 在大部分项目中,我们都会经常有用到邮件工具:不管是邮件验证码.邮件注册校验.预警通知等服务,都会使用到我们的email来发送邮件.下面我们就来教大家如何使用Spri ...
- SpringBoot集成邮箱功能并使用Knife4j测试
SpringBoot集成邮箱功能并使用Knife4j测试 哔哩哔哩链接:https://www.bilibili.com/video/BV1uA411N7cm 1.获取163或QQ邮箱授权码 163邮 ...
- SpringBoot集成163邮件发送详细配置,从163邮箱开始配置
SpringBoot集成163邮件发送详细配置,从163邮箱开始配置 1.登录163邮箱 2.配置163邮箱 3.开始编写SpringBoot代码 1.创建SpringBoot项目然后引入依赖 2.编 ...
- 项目构建之springboot集成lomback.xml,和log4j基于properties方式的日志配置记录
文章目录 springboot集成lomback.xml 描述 在yml中定义的一些配置信息 创建logback-spring.xml文件 logback-spring.xml配置如下: **log4 ...
- 玩转 SpringBoot 2 之发送邮件篇
前言 通过本文你将了解到SpringBoot 2 中发送邮件使用教程,具体详细内容如下: 发送普通的邮件 发送html格式邮件 发送html 中带图片的邮件 发送带附件的邮件 阅读前需要你必须了解如何 ...
- Spring Boot(十二)集成spring-boot-starter-mail发送邮件
项目GitHub地址 : https://github.com/FrameReserve/TrainingBoot Spring Boot(十二)集成spring-boot-starter-mail发 ...
- 三、美团大众点评CAT监控系列文章---Springboot集成CAT并实现邮件告警
文章目录 一.配置过程 二.相关的参考文档 三.系列文章 一.配置过程 登录自己的cat服务端 默认登录用户名和密码都是 catadmin添加一个监控规则: 如下面的监控规则就是说,如果在一分钟以内访 ...
最新文章
- Dreamwerver8下定义表单实现第一个登陆页面
- 用python画雪花-python使用turtle库与random库绘制雪花
- dubbo基础使用入门
- SAP-采购订单交货成本抓取方法
- python用变量输出abcd_python中星号变量的几种特殊用法
- 计算机科学导论实验考试,计算机科学导论实验指导书
- 若依编辑和删除操作按钮不可用怎么办?
- 新西兰储备银行数据遭泄露
- DirectAdmin安装mod_encoding支持中文
- THINKPHP_关联模型MANY_TO_MANY
- 103规约测试软件,Protocoltester(国电南自103规约调试软件)
- ecshop网店系统简评
- 伊家田园帮您划重点!2021年重点强农惠农政策
- 自媒体怎么同时多平台发文章?5分钟发到30+自媒体平台上
- 教你如何求一个集合的所有非空子集的方差和
- 香港区块链贸易融资平台将于9月上线
- idea gradle一直卡在initializing gradle projects data终极解决
- vscode 主题 One Dark Pro
- 开放平台回顾与前景展望
- html下拉菜单自动收回,jquery使用hover触发下拉菜单如果为什么有空隙就自动收回?...