SpringBoot整合email
构建项目(以QQ邮箱为例)
构建SpringBoot项目(web)
pom.xml
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>
application.properties(敲黑板)
spring.mail.username为你QQ邮箱
spring.mail.password不是不是不是 你的邮箱密码,是授权码,授权码,授权码 (授权码获取方式在下面有)
######################################
###Email
######################################
spring.mail.host=smtp.qq.com
#spring.mail.host=14.17.57.241
spring.mail.username=2568230656@qq.com
spring.mail.password=nezkixooldtw
spring.mail.default-encoding=UTF-8
spring.mail.port=465
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true
EmailService
package com.example.demo;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 EmailService {@Autowiredprivate JavaMailSender mailSender;// 发送简单邮件/*** * @param from* 发送方* @param to* 接收方* @param subject* 主题* @param text* 内容*/public void sendSimpleMail(String from, String to, String subject, String text) {SimpleMailMessage message = new SimpleMailMessage();message.setFrom(from);message.setTo(to);message.setSubject(subject);message.setText(text);mailSender.send(message);}
}
EmailController
package com.example.demo;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;@Controller
public class EmailController {@Autowiredprivate EmailService emailService;@RequestMapping("/email")@ResponseBodypublic String sendEmail() {// 发送邮件emailService.sendSimpleMail("2568230656@qq.com", "956056312@qq.com", "主题:简单邮件", "测试邮件内容");return "success";}}
测试
http://localhost:8080/email
遇到的坑
异常
exception
具体异常记不清楚,我把异常用谷歌翻译的大体意思是 smtp.qq.com解析不到
解决办法
确保 ①用户名、②密码(授权码)、③编码 、④邮箱开启POP3/SMTP服务 没有问题的基础之上,用URL地址 (域名归属地查询 - 程序员在线工具) ,查询 (smtp.qq.com)或者 (smtp.163.com)的ip地址,将配置文件中的域名改为你查询到的ip地址,如下所示
#spring.mail.host=smtp.qq.com
spring.mail.host=14.18.245.164
发送邮箱运行太慢
表现形式:
请求URL后要转圈圈很长一段时间
解决办法:异步加载
1)在方法上添加注解@Async
@Asyncpublic void sendSimpleMail(String from, String to, String subject, String text) {SimpleMailMessage message = new SimpleMailMessage();message.setFrom(from);message.setTo(to);message.setSubject(subject);message.setText(text);mailSender.send(message);}
2)在启动类上开启异步注解功能@EnableAsync
@SpringBootApplication
@EnableAsync//开启异步注解功能
public class SpringBootDemoApplication {public static void main(String[] args) {SpringApplication.run(SpringBootDemoApplication.class, args);}}
邮箱授权码的获取(以QQ邮箱为例)
SpringBoot整合email相关推荐
- SpringBoot整合Email 邮件发送
文章目录 一.准备 二.邮件发送需要的配置 获取163邮箱授权码 获取QQ邮箱授权码 YML配置 三.代码编写 普通邮件发送 HTML邮件发送 含静态资源邮件发送 带附件邮件发送 SpringBoot ...
- 3、SpringBoot整合MyBatis注解版及配置文件版
目录 1.配置pom.xml 2.配置application.yml 3.配置DruidConfig关联yml的配置文件spring.datasource 4.创建数据库及数据库表结构 5.创建对应的 ...
- (二)SpringBoot 整合 JPA
一.JPA简介 JPA(java persistence api)并不是一个框架,而是一组规范.Hibernate.TopLink.OpenJPA都实现了JPA规范,不过Hinernate最成功).所 ...
- Springboot整合ActiveMQ发送邮件
虽然ActiveMQ以被其他MQ所替代,但仍有学习的意义,本文采用邮件发送的例子展示ActiveMQ 文章目录 1. 生产者 1.1 引入maven依赖 1.2 application.yml配置 1 ...
- SpringBoot整合Mybatis-plus实现增删查改
今天给大家分享一下SpringBoot整合Mybatis-plus的增删查改案例. pom.xml <?xml version="1.0" encoding="UT ...
- SpringBoot整合阿里云OSS文件上传、下载、查看、删除
SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...
- rabbit和mysql事务_分布式事务原理及SpringBoot整合RabbitMQ实现可靠事件,TCC事务模型及接口幂等性...
分布式事务 我们知道在单数据库系统中,实现数据的一致性,通过数据库的事务来处理比较简单.在微服务或分布式系统中,各个独立的服务都会有自己的数据库,而不是在同一个数据库中,所以当一组事务(如商品交易中, ...
- SpringBoot整合Shiro实现权限控制,验证码
本文介绍 SpringBoot 整合 shiro,相对于 Spring Security 而言,shiro 更加简单,没有那么复杂. 目前我的需求是一个博客系统,有用户和管理员两种角色.一个用户可能有 ...
- Springboot整合一之Springboot整合RabbitMQ
前言 目前,springboot已然成为了最热的java开发整合框架,主要是因其简单的配置,并且本身提供了很多与第三方框架的整合,甚至可以让我们在短短的几分钟里就可以搭建一个完整的项目架构.所以,博主 ...
最新文章
- 洛谷 P2590 [ZJOI2008]树的统计
- VS 中配置使用Visual SVN系列 一:SVN Server下载和安装
- HarmonyOS之将SVG文件转换为XML文件
- PowerDesigner使用技巧
- Django REST框架 -1
- 2021,新手初学写作的几个温馨建议
- 2019年上海地区最新JAVAEE开发面试与笔试题
- 温度补偿计算公式_管道布置设计原则、基本要求与补偿器的选择
- 嵌入式系统——面向对象的设计原则
- 项目背景怎么描述_项目工作总结报告怎么写?搞定通用规范模型先
- 面试题之Java中线程的几种状态
- Windows Server 2016-WinSer 2016标准版与数据中心版的区别
- cad二次开发之无法验证该可执行文件的发布者解决方案
- 微博android签名工具,微博签名
- 简述网桥,网关,路由器之间的区别和联系
- 每当我夜深人静的时候下载小电影,总是会卡在百分之九十九,这是正义的制裁么?
- linux rsh通信实现_RSH的网络通信细节
- 制作古装人物彩色工笔画图片的PS教程
- 创业日志:一个和尚挑水喝,两个和尚抬水喝,三个和尚没水喝?
- 硕士生论文存在的问题
热门文章
- 口腔溃疡怎么办最快最有效的方法 口腔溃疡缺什么维生素
- 一张图认识IPSec,区分IKE SA(ISAKMP SA)和IPSec SA
- 记一次nginx配置自定义错误页面的麻瓜经历
- 泛函分析笔记2:赋范空间
- http状态返回代码 1xx(临时响应)
- py-faster-rcnn 中 shell脚本解读:./experiments/scripts/faster_rcnn_alt_opt.sh
- 使用TorchText库进行文本分类
- Neuron segmentation using 3D wavelet integratedencoder–decoder network
- PMP续证 | PDU具体操作图解
- Hadoop HA介绍