目录

1、在pom.xml添加如下依赖

2、在application.yml中添加如下配置

3、创建发送邮件工具类

4、接口调用


1、在pom.xml添加如下依赖

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

2、在application.yml中添加如下配置

mail:host: smtp.exmail.qq.comport: 465username: xx@xxxx.com  #初始邮件地址(发送邮件者)password: 123xx456  #密码protocol: smtpproperties:mail:smtp:auth: truessl:enable: truesocketFactory:class: com.sun.mail.util.MailSSLSocketFactoryfallback: false

3、创建发送邮件工具类

/*** 发送邮件工具类*/
@Component
public class EmailUtil {@Autowiredprivate JavaMailSender javaMailSender;@Value("${spring.mail.username}")private String username;/*** 发送邮件* @param subject 邮件主题* @param content 邮件内容* @param to 收件人*/public void sendEmail(String subject, String content, String[] to) {try {MimeMessage mimeMessage = javaMailSender.createMimeMessage();MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true);messageHelper.setFrom(username);//发送者邮箱地址messageHelper.setTo(to);//收件人邮箱地址messageHelper.setSubject(subject);//邮件主题messageHelper.setText(content, true);//邮件内容messageHelper.setSentDate(new Date());javaMailSender.send(mimeMessage);} catch (Exception e) {new RuntimeException("邮件发送失败", e);}}
}

4、接口调用

RequestVO:

@Data
public class EmailSendAddReq {@ApiModelProperty(value = "发送类型(1、模板发送 2、自定义发送)")@NotNull(message = "发送类型不能为空")private Integer sendType;@ApiModelProperty(value = "邮件主题")@NotBlank(message = "邮件主题不能为空")private String subject;@ApiModelProperty(value = "收件人(多个人用英文 ; 隔开)")@NotBlank(message = "收件人不能为空")private String recipient;@ApiModelProperty(value = "模板ID")private String templateId;@ApiModelProperty(value = "发送内容")private String content;
}

Controller:

/*** <p>* 邮件发送表 前端控制器* </p>*/
@RestController
@RequestMapping("/uxm/email-send")
public class UxmEmailSendController {@Autowiredprivate IUxmEmailSendService emailSendService;@PostMapping("/send")@ApiOperation("发送邮件")@Log(BusinessTypeEnum.INSERT)public Result<Boolean> addSendEmail(@RequestBody EmailSendAddReq req)  {emailSendService.addSendEmail(req);return Result.success();}
}

忽略Service

ServiceImpl:

/*** <p>* 邮件发送表 服务实现类* </p>*/
@Slf4j
@Service
public class UxmEmailSendServiceImpl extends ServiceImpl<UxmEmailSendMapper, UxmEmailSend> implements IUxmEmailSendService {@Autowiredprivate IUxmEmailTemplateService emailTemplateService;@Autowiredprivate EmailSendConvert emailSendConvert;@Autowiredprivate EmailUtil emailUtil;/*** 发送邮件*/@Overridepublic void addSendEmail(EmailSendAddReq req) {UxmEmailSend uxmEmailSend = emailSendConvert.toEntity(req);//判断邮件模板ID是否为空if (StringUtils.isNotBlank(req.getTemplateId())) {UxmEmailTemplate template = emailTemplateService.getById(req.getTemplateId());uxmEmailSend.setContent(template.getContent());} else {//判断邮件发送内容是否为空if (StringUtils.isBlank(req.getContent())) {throw new ServiceException("发送内容不能为空");}}//发送多人String[] split = req.getRecipient().split(";");try {//发送邮件emailUtil.sendEmail(uxmEmailSend.getSubject(), uxmEmailSend.getContent(), split);uxmEmailSend.setIsSendSuccess(1);} catch (Exception e) {log.error(e.getMessage(), e);uxmEmailSend.setIsSendSuccess(0);}uxmEmailSend.setSendTime(new Date());//新增邮件记录到库表this.save(uxmEmailSend);}
}

JAVA 发送邮件功能相关推荐

  1. 简易的定时发送生日邮件功能(Listener+定时器+使用java发送邮件)

    实现功能主要技术点: Listener(监听器) 使用Java发送邮件(JavaMail的使用) 代码示例 创建web工程,写一个监听器监听ServletContext对象的创建(创建时机:启动服务器 ...

  2. JAVA 实现发送邮件功能——邮箱验证码

    JAVA 实现发送邮件功能--邮箱验证码 在学习 Java 的过程中,由于项目需要使用邮箱验证码功能,所以进行了较为深入的学习,在这里写一下这个功能的实现方式. 首先 想要使用 Java 实现发送邮件 ...

  3. Java实现发送邮件功能

    目录 一.代码功能 二.功能实现 邮件实体 邮件参数配置 发送邮件 主函数 三.源码下载 四.商务合作 一.代码功能 Java实现发送邮件功能,使用mail包里面的函数进行实现此功能.话不多说,直接贴 ...

  4. java 发送邮件_老板要实现SpringBoot发送邮件?大神发了这篇文章后,今晚准点下班...

    正文开始前,分享阿里 P8 资深架构师吐血总结的 <Java 核心知识体系&面试资料.pdf> 阿里 P8 级资深架构师吐血总结的一份 Java 核心知识.pdf, 内容覆盖很广, ...

  5. 用java发送邮件(黄海已测试通过)

    /*** java发送带附件的邮件* 周枫* 2013.8.10*/ package com.dsideal.Util; import javax.mail.*; import javax.mail. ...

  6. Java发送邮件(带附件)

    实现java发送邮件的过程大体有以下几步: 准备一个properties文件,该文件中存放SMTP服务器地址等参数. 利用properties创建一个Session对象 利用Session创建Mess ...

  7. 手把手教你实现Java发送邮件(1)-发送简单的文本

    说明:本博客已经收藏至我的gitee中的code_demo仓库(点击此链接跳转)中,且gitee中有相应的代码~ 欢迎访问~~ 不仅仅是code,还有一些通俗的讲解哦~ 文章目录 一.Java实现邮件 ...

  8. SSM整合框架实现发送邮件功能

    SSM整合框架实现发送邮件功能 1.导入发送邮件的依赖 <!-- 发送邮件jar包--><!--spring支持--><dependency><groupId ...

  9. Java发送邮件详解

    Java发送邮件详解 本期我们学习Java如何发送邮件,Java发送邮件是以后工作较为常用的一个Java技能,想Web的邮箱验证.邮件提醒等功能,后期我也会编写一个教务的成绩提醒系统,其中,提醒的功能 ...

  10. Java发送邮件(网易163邮箱)(简单易操作篇)

    文章目录 一.前言 二.事先准备步骤 三.Java具体代码实现 1. 类有哪几个? 2.jar包配置 3.关键代码功能简介 4.具体代码 4.1 MailConst.java 负责存放一些配置 4.2 ...

最新文章

  1. spark 应用程序性能优化经验
  2. 逐步回归 图像降维matlab,使用matlab对训练样本图像降维,并对测试图像使用变换矩阵降维并重构...
  3. 从0 开始 WPF MVVM 企业级框架实现与说明 ---- 第十讲 WPF 系统MainWindow
  4. Redis 数据备份与恢复
  5. 基础算法:与、或、异或运算
  6. BestCoder Round #70
  7. php 日期范围查询分页,Thinkphp3.2 多条件数据分页查询
  8. 开发新概念:代码管理(代码框架)
  9. php怎么改背景图片,php - 如何借助php中的url参数更改背景图片? - SO中文参考 - www.soinside.com...
  10. 嵩天python笔记_嵩天Python学习笔记
  11. pandas算加权平均值_python – 为pandas中的不规则时间序列创建加权平均值
  12. 3. 空实例对象调用静态方法的结果
  13. 南大地球科学能转计算机类吗,南京大学地球科学系
  14. sap清账使用反记账_【转】SAP反记账功能祥解
  15. python读取图片像素矩阵
  16. 驱动VFD屏幕 / 真空荧光屏 (不完美)
  17. traffic-control: tc流量管理简介     --TurboLinux知识库
  18. Jenkins安装并配置加速器
  19. Excel中过长数字的问题以及CSV文件避免这个问题的处理办法
  20. httpclient-Connection pool shut down 问题排查

热门文章

  1. 谭浩强C语言(第三版)习题6.11
  2. 十大最受欢迎蓝牙耳机品牌推荐,学生党打工人平价蓝牙耳机
  3. 火山PC表格及Excel的导入导出案例
  4. 牛顿迭代法的matlab程序,牛顿迭代法matlab程序
  5. c51语言跑马灯键盘程序,单片机按键控制跑马灯程序
  6. 手机抓直播源工具app_东方卫视 手机在线直播 央视源
  7. 完整版商城PHP源码小程序,前后端+后台+小程序;访问地址在文末
  8. php旧物交易开源代码_仿互站PHP源码 虚拟物品在线交易网站源码 附14套风格
  9. c语言的退出程序代码,C语言实现关机小程序
  10. EDA技术实用教程 | 复习六 | 过程语句always