构建项目(以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相关推荐

  1. SpringBoot整合Email 邮件发送

    文章目录 一.准备 二.邮件发送需要的配置 获取163邮箱授权码 获取QQ邮箱授权码 YML配置 三.代码编写 普通邮件发送 HTML邮件发送 含静态资源邮件发送 带附件邮件发送 SpringBoot ...

  2. 3、SpringBoot整合MyBatis注解版及配置文件版

    目录 1.配置pom.xml 2.配置application.yml 3.配置DruidConfig关联yml的配置文件spring.datasource 4.创建数据库及数据库表结构 5.创建对应的 ...

  3. (二)SpringBoot 整合 JPA

    一.JPA简介 JPA(java persistence api)并不是一个框架,而是一组规范.Hibernate.TopLink.OpenJPA都实现了JPA规范,不过Hinernate最成功).所 ...

  4. Springboot整合ActiveMQ发送邮件

    虽然ActiveMQ以被其他MQ所替代,但仍有学习的意义,本文采用邮件发送的例子展示ActiveMQ 文章目录 1. 生产者 1.1 引入maven依赖 1.2 application.yml配置 1 ...

  5. SpringBoot整合Mybatis-plus实现增删查改

    今天给大家分享一下SpringBoot整合Mybatis-plus的增删查改案例. pom.xml <?xml version="1.0" encoding="UT ...

  6. SpringBoot整合阿里云OSS文件上传、下载、查看、删除

    SpringBoot整合阿里云OSS文件上传.下载.查看.删除 该项目源码地址:https://github.com/ggb2312/springboot-integration-examples ( ...

  7. rabbit和mysql事务_分布式事务原理及SpringBoot整合RabbitMQ实现可靠事件,TCC事务模型及接口幂等性...

    分布式事务 我们知道在单数据库系统中,实现数据的一致性,通过数据库的事务来处理比较简单.在微服务或分布式系统中,各个独立的服务都会有自己的数据库,而不是在同一个数据库中,所以当一组事务(如商品交易中, ...

  8. SpringBoot整合Shiro实现权限控制,验证码

    本文介绍 SpringBoot 整合 shiro,相对于 Spring Security 而言,shiro 更加简单,没有那么复杂. 目前我的需求是一个博客系统,有用户和管理员两种角色.一个用户可能有 ...

  9. Springboot整合一之Springboot整合RabbitMQ

    前言 目前,springboot已然成为了最热的java开发整合框架,主要是因其简单的配置,并且本身提供了很多与第三方框架的整合,甚至可以让我们在短短的几分钟里就可以搭建一个完整的项目架构.所以,博主 ...

最新文章

  1. 洛谷 P2590 [ZJOI2008]树的统计
  2. VS 中配置使用Visual SVN系列 一:SVN Server下载和安装
  3. HarmonyOS之将SVG文件转换为XML文件
  4. PowerDesigner使用技巧
  5. Django REST框架 -1
  6. 2021,新手初学写作的几个温馨建议
  7. 2019年上海地区最新JAVAEE开发面试与笔试题
  8. 温度补偿计算公式_管道布置设计原则、基本要求与补偿器的选择
  9. 嵌入式系统——面向对象的设计原则
  10. 项目背景怎么描述_项目工作总结报告怎么写?搞定通用规范模型先
  11. 面试题之Java中线程的几种状态
  12. Windows Server 2016-WinSer 2016标准版与数据中心版的区别
  13. cad二次开发之无法验证该可执行文件的发布者解决方案
  14. 微博android签名工具,微博签名
  15. 简述网桥,网关,路由器之间的区别和联系
  16. 每当我夜深人静的时候下载小电影,总是会卡在百分之九十九,这是正义的制裁么?
  17. linux rsh通信实现_RSH的网络通信细节
  18. 制作古装人物彩色工笔画图片的PS教程
  19. 创业日志:一个和尚挑水喝,两个和尚抬水喝,三个和尚没水喝?
  20. 硕士生论文存在的问题

热门文章

  1. 口腔溃疡怎么办最快最有效的方法 口腔溃疡缺什么维生素
  2. 一张图认识IPSec,区分IKE SA(ISAKMP SA)和IPSec SA
  3. 记一次nginx配置自定义错误页面的麻瓜经历
  4. 泛函分析笔记2:赋范空间
  5. http状态返回代码 1xx(临时响应)
  6. py-faster-rcnn 中 shell脚本解读:./experiments/scripts/faster_rcnn_alt_opt.sh
  7. 使用TorchText库进行文本分类
  8. Neuron segmentation using 3D wavelet integratedencoder–decoder network
  9. PMP续证 | PDU具体操作图解
  10. Hadoop HA介绍