场景

项目搭建专栏:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/35688

实现最简单的带标题以及文本内容的邮件发送。使用qq邮件服务器。

实现

项目中引入邮件依赖

<!-- 邮件依赖 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId></dependency>

找到项目的全局配置文件application.properties

将username改为要发送邮件的账号,这里是qq邮箱账号

下面password设置为qq邮箱的授权码

#JavaMail邮件发送的配置
#指明邮件发送服务器  如果是163的则为smtp.163.com
spring.mail.host=smtp.qq.com
spring.mail.username=
#授权码qq邮箱需要设置并获取授权码  163则直接为邮箱密码
spring.mail.password=
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

qq邮箱设置授权码:

qq邮箱--设置--账户--POP3/SMTP服务

开启服务后就会获得qq的授权码

在项目下新建email包

在email包下新建配置类实现从全局配置文件中获取自定义属性

package com.example.demo.email;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class EmailConfig {@Value("${spring.mail.username}")private String emailFrom;public String getEmailFrom() {return emailFrom;}public void setEmailFrom(String emailFrom) {this.emailFrom = emailFrom;}}

新建接口EmailService,有一个发送邮件的方法。

package com.example.demo.email;import org.springframework.stereotype.Service;@Service
public interface EmailService {void sendSimpleMail(String senfTo,String title,String content);
}

新建接口实现类

package com.example.demo.email;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 EmailServiceImpl implements EmailService {@Autowiredprivate EmailConfig emailConfig;@Autowiredprivate JavaMailSender mailSender;@Overridepublic void sendSimpleMail(String sendTo, String title, String content) {//简单邮件的发送SimpleMailMessage message = new SimpleMailMessage();message.setFrom(emailConfig.getEmailFrom());message.setTo(sendTo);message.setSubject(title);message.setText(content);mailSender.send(message);}}

通过SimpleMailMessage 设置要发送邮件的账号以及标题和内容。

然后使用JavaMailSender 实现发送邮件。

新建controller实现测试邮件发送。

package com.example.demo.email;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("simpleEmail")@ResponseBodypublic String sendSimpleEmail() {emailService.sendSimpleMail("****@qq.com", "测试", "简单邮件");return "success";}
}

sendSimpleMail方法第一个参数就是要发送的邮箱账号。

项目启动类下添加此包为可扫描。

@SpringBootApplication(scanBasePackages= {"com.example.demo.controller","com.example.demo.service","com.example.demo.interceptor","com.example.demo.handler","com.example.demo.job","com.example.demo.email"})

启动项目,访问

http://localhost:8080/simpleEmail

可以看到浏览器返回success,然后收到邮件。

效果

源码下载

https://download.csdn.net/download/badao_liumang_qizhi/11114781

SpringBoot中整合Mail实现发送邮件相关推荐

  1. SpringBoot中整合Mail实现发送模板邮件

    场景 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/35688 实现最简单的带标题以及文本内容的邮件发送: https:/ ...

  2. SpringBoot中整合Mail实现发送带附件的邮件

    场景 项目搭建专栏: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/column/info/35688 实现最简单的带标题以及文本内容的邮件发送: https:/ ...

  3. springboot中整合mybatis及简单使用

    springboot中整合mybatis及简单使用 1.引入依赖 2.在applicaiton.yaml中配置数据源以及mybatis 3.创建sql测试表 4.编写mapper接口和mapper.x ...

  4. 【SpringBoot】43、SpringBoot中整合RabbitMQ实现延时队列(延时插件篇)

    死信队列实现篇,参考文章:[SpringBoot]60.SpringBoot中整合RabbitMQ实现延时队列(死信队列篇) 一.介绍 1.什么是延时队列? 延时队列即就是放置在该队列里面的消息是不需 ...

  5. 在SpringBoot中整合使用Netty框架提供WebSocket服务

    在SpringBoot中整合使用Netty框架 Netty是一个非常优秀的Socket框架.如果需要在SpringBoot开发的app中,提供Socket服务,那么Netty是不错的选择. Netty ...

  6. 【SpringBoot】44、SpringBoot中整合JWT实现Token验证(整合篇)

    什么是JWT? Json web token (JWT),是为了在网络应用环境间传递声明而执行的一种基于 JSON 的开放标准((RFC 7519),该 token 被设计为紧凑且安全的,特别适用于分 ...

  7. 【SpringBoot】22、SpringBoot中整合knife4j接口文档

    在项目开发中,web项目的前后端分离开发,APP开发,需要由前后端工程师共同定义接口,编写接口文档,之后大家都根据这个接口文档进行开发,到项目结束前都要一直维护 接口文档使得项目开发过程中前后端工程师 ...

  8. 【SpringBoot】3、SpringBoot中整合Thymeleaf模板引擎

    SpringBoot 为我们提供了 Thymeleaf 自动化配置解决方案,所以我们在 SpringBoot 中使用 Thymeleaf 非常方便 一.简介 Thymeleaf是一个流行的模板引擎,该 ...

  9. exchange无法收发邮件_SpringBoot2.x系列教程69--SpringBoot中整合Mail实现邮件发送

    SpringBoot2.x系列教程69--SpringBoot中整合邮件发送 作者:一一哥 注: 本文案例以QQ邮箱发送的实现为例! 一. 邮件发送概述 1. 概述 在Spring框架中提供了一个Ja ...

最新文章

  1. 路由协议的优先级,以及管理距离AD和metric的区别
  2. FTP的主动模式和被动模式,你应该用那种?
  3. YourSQLDba的翻译(十一)
  4. php mysql集群_PHP如何访问数据库集群
  5. 《研磨设计模式》chap10 中介者模式Mediator(1)简介
  6. u-boot 源码分析讲解
  7. mysql榨包是什么意思_模块与包 Mysql与Oracle区别
  8. ajax联系人数,setInterval定时调用ajax实现在线人数统计
  9. win10启动项_科普:为什么重装Win7系统后,速度比Win10系统慢很多?
  10. USACO 1.2 Milking Cows (枚举)
  11. astr在python_python学习之初识字符串
  12. JavaScript:windows关机效果
  13. [bzoj 3110] [ZJOI2013] K大数查询
  14. 关于Spring Cloud Netflix
  15. 恒流源差分放大电路静态分析_差分放大电路分析
  16. 优秀课程案例:使用Scratch制作飞机大战游戏!
  17. win11 右键菜单恢复成win10样式(亲测有效)
  18. 红黑树时间复杂度为什么是O(logn)?
  19. 使用神经网络识别手写数字
  20. 2018-2019赛季多校联合新生训练赛第四场

热门文章

  1. linux安装java_linux中替换系统自带的OpenJDK
  2. springboot aop加载流程
  3. java用继承编写宠物乐园_MoreThanJavaDay 5:面向对象进阶继承详解
  4. php cms 的模板修改,phpcms v9后台登陆模板修改方法和程序版本更新提示修改方法...
  5. qnx efs文件系统binary修复
  6. html解析器编译原理,编译原理实验报告词法分析器(内含源代码).docx
  7. php 正则图片相对路径替换成绝对路径_相对路径的优缺点
  8. c hello world_世界上最难的 5 种编程语言!C/C++竟不在其列,它们到底是谁?
  9. webpack 多页面 html,webpack打包多页应用,如何处理不同html页面(通过a标签)之间的跳转?...
  10. 在职研究生计算机相关专业有哪些专业,计算机方考研有哪些具体专业,方向