我不考虑将来。要是我既要想着今天,又要操心明天,生活就没意思了。 每当事情遭到不能再糟的地步时,我总发现天无绝人之路。

目录

  • 前言
  • 环境准备
  • 所需依赖
  • 配置文件
  • 代码实现

前言

关于如何搭建SpringBoot工程以及开启Web功能,
可以查看我的这篇博客:用Spring Initializr快速构建SpringBoot及整合MVC

环境准备

首先,我们需要打开QQ邮箱,进入设置,选中账户,开启SMTP服务,如图:

并生成授权码,授权码的作用相当于QQ邮箱的密码。

所需依赖

在依赖管理文件pom.xml中导入发送邮件所需要的起步依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId>
</dependency>

配置文件

在配置文件application.yml中配置发送邮箱方的相关信息:

spring:# 配置QQ邮箱mail:#默认发送邮件基于smtp协议 可不要protocol: smtp#smtp服务器地址host: smtp.qq.com#发送方的邮箱username: ******@qq.com#发送方的密码(授权码或者QQ邮箱密码都可以)password: ********properties:mail:smtp:auth: truestarttls:enable: truerequired: true

代码实现

首先需要一个邮件实体类:

package com.guqueyue.entity;/*** @author guqueyue* @Date 2020/5/26**/
@Data //lombok插件的注解,若是没有用lombok插件,请自行生成getter、setter方法
@AllArgsConstructor //全参构造方法
@NoArgsConstructor //无参构造方法
@Accessors(chain = true) //开启链式编程
public class Email implements Serializable {/*** 接收者*/private String to;/*** 邮件标题*/private String subject;/*** 发送内容*/private String context;/*** 发送时间*/private Date sendTime;
}

其次在Web层新建一个Controller,代码如下:

package com.guqueyue.controller;/*** @author guqueyue* @Date 2020/5/26* 发送邮件**/
@Controller
@RequestMapping("/send")
public class MailController {@Autowiredprivate JavaMailSender javaMailSender;/*** 获取配置文件里的发送方*/@Value("${spring.mail.username}")private String from;@RequestMapping("/mail")public void sendMail() throws MessagingException {// 设置邮件内容Email email = new Email().setSubject("这是一封测试邮件").setContext("<hr/>盖西伯(周文王)拘而演《周易》;<br/> 仲尼厄而作《春秋》;<br/>屈原放逐,乃赋《离骚》;<br/>" +"左丘失明,厥有《国语》;<br/>孙子膑脚,《兵法》修列;<br/>" +"不韦迁蜀,世传《吕览》;<br/>韩非囚秦,《说难》、《孤愤》;《诗》三百篇大抵圣贤发愤之所作也。<hr/>").setTo(from).setSendTime(new Date());// 发送邮件send(email);}/*** 发送邮件的方法*/public void send(Email email) throws MessagingException {System.out.println("接收到的邮件对象为:" + email);//创建一封邮件MimeMessage mimeMessage = javaMailSender.createMimeMessage();//Spring提供的一个便捷的邮件设置对象MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage, true);//设置邮件的内容//标题mimeMessageHelper.setSubject(email.getSubject());//发送方mimeMessageHelper.setFrom(from);//接收方mimeMessageHelper.setTo(email.getTo());//接收者
//        mimeMessageHelper.setCc("***@qq.com");//抄送
//        mimeMessageHelper.setBcc("***@qq.com");//密送//设置内容mimeMessageHelper.setText(email.getContext(), true);//发送附件
//        mimeMessageHelper.addAttachment("我的附件.jpg", new File("C:\\worker\\images\\7f25dc3b-13e5-42a5-a205-8276b0528040"));//设置当前时间mimeMessageHelper.setSentDate(email.getSendTime());//发送邮件javaMailSender.send(mimeMessage);System.out.println("成功发送邮件......");}
}

然后运行程序,在浏览器输入http://localhost:8080/send/mail,不必理会页面的404错误,发现邮箱收到以下邮件即为成功:

用SpringBoot轻松实现发送邮件功能相关推荐

  1. 在SpringBoot中添加发送邮件功能

    1.第一步首先引入坐标 <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter- ...

  2. SpringBoot实现定时发送邮件功能

    1:准备邮件配置环境.(我使用的是QQ邮箱) 登录QQ邮箱  --> 设置  -->  账户 -->如图操作.(需要开启这个服务,开启很简单,根据提示就可以了) 2:开始创建一个ma ...

  3. spring boot 邮件端口_不会吧,SpringBoot还能发送邮件发送邮件?快来看看如何操作吧

    前言 实现发送邮件功能主要有以下几步 引入依赖spring-boot-start-mail用SpringBoot 自动配置MailSenderAutoConfiguration定义MailProper ...

  4. Java技术:SpringBoot实现邮件发送功能

    邮件发送功能基本是每个完整业务系统要集成的功能之一,今天小编给大家介绍一下SpringBoot实现邮件发送功能,希望对大家能有所帮助! 今天主要给大家分享简单邮件发送.HTML邮件发送.包含附件的邮件 ...

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

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

  6. java 基于springboot邮箱找回密码功能

    一.主要内容 基于springboot实现密码找回功能. 二.邮箱找回密码的思想. 1.输入注册邮箱,点击获取验证码.会将验证码发送到邮箱. 2.用户进入邮箱,查看验证码. 3.用户输入验证码,输入新 ...

  7. Python django实现简单的邮件系统发送邮件功能

    Python django实现简单的邮件系统发送邮件功能 本文实例讲述了Python django实现简单的邮件系统发送邮件功能. django邮件系统 Django发送邮件官方中文文档 总结如下: ...

  8. Selenium3自动化测试——23.自动发送邮件功能

    自动发送邮件是自动化测试项目的重要需求之一.发送邮件的协议,是简单邮件传输协议(SMTP). 1. Python自带的发送邮件功能 1.1 发送邮件正文 import smtplib from ema ...

  9. ssm实现发送邮件功能

    SSM实现发送邮件 项目需求 前期工作 配置文件及代码 项目部署 项目需求 用户注册时输入自己的邮箱地址(这里以QQ邮箱为例),用户提交订单,管理员操作订单,订单审核通过时给用户发送邮件提醒用户,审核 ...

最新文章

  1. python爬百度翻译-python爬取百度翻译的问题以及解决方案
  2. 机器人产业一定有美好未来
  3. ffmpeg 从mp4上提取H264的nalu
  4. [转]JS脚本抢腾讯云学生1元代金券
  5. oracle 找不到程序单元,Oracle Web ADI 加载时错误:ORA-06508: PL/SQL: 无法在调用之前找到程序单元...
  6. 游戏动作师使用Unity3D遇到过的所有问题
  7. 如何复制服务器数据库文件大小,如何复制服务器数据库文件夹
  8. openwrt路由器更换了Flash之后需要修改的源码
  9. 大工18春《c和c语言程序设计》,东大21春《高级语言程序设计基础》在线平时作业1题目及答案...
  10. 解决 from scipy.misc import comb ImportError: cannot import name ‘comb‘ 问题
  11. AI转型中的思考和洞见
  12. Python数据可视化matplotlib(一)—— 图表的基本元素
  13. alertmanager监控告警163邮箱通知
  14. 成成你好呀(C知识点整理二)
  15. 微信小程序【人脸识别功能】
  16. 【上市啦】“Python 之父” 力荐的蓝皮书,你知道是哪本吗?
  17. MICCAI 2022:使用自适应条形采样和双分支 Transformer 的 DA-Net
  18. WIFI覆盖“瓷都”景区 电信助力景德镇打造“智慧城市”
  19. 360安全卫士网管版流量监控:轻松管理企业带宽
  20. 数据预处理和特征选择

热门文章

  1. Ubuntu1804----使用mysql
  2. Sketch 59 中文版 最流行的产品UI设计和矢量图形设计软件
  3. 如何禁止某个linux用户访问某些文件夹及执行某些命令
  4. 绝地求生手游版显示服务器加载中,绝地求生游戏一直卡在游戏读取界面怎么办_绝地求生游戏开启卡在读取界面解决办法_游戏吧...
  5. 0~5VDC线性模拟量电压输出开口式电流互感器
  6. Unity骨骼动力学应用
  7. VMware虚拟机报错:您无法压缩该虚拟磁盘,因为它是预分配的。
  8. 囧囧西游之大闹天宫java_囧西游之大闹天宫 属性加成全攻略
  9. W5100常见问题解答汇总(持续更新中)
  10. 冬困秋乏春无力-来一份全面的面试宝典洗洗脑,移动设备开发网易云音乐app开发说明