SpringBoot发送邮件通过SendGrid服务平台

  • 一、开通API Keys
  • 二、后台实现

一、开通API Keys

二、后台实现

  • 加入maven依赖
     <dependency><groupId>com.sendgrid</groupId><artifactId>sendgrid-java</artifactId><version>4.7.2</version></dependency>

1.yaml配置属性(自定义配置)

2.yaml属性对应配置类SendGridConfig

package com.ruoyi.common.config;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** @created: 2021/4/13* @description:*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Component
@ConfigurationProperties(prefix = "send-grid")
public class SendGridConfig
{private String from;private String apiKey;}

3.yaml属性对应配置类SendGridConfig

package com.ruoyi.common.config;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** @created: 2021/4/13* @description:*/
@Data
@NoArgsConstructor
@AllArgsConstructor
@Component
@ConfigurationProperties(prefix = "send-grid.templateids")
public class SendGridTemplateConfig
{/*** 重置密码模板ID*/private String resetPwd;/*** 驾驶证模板ID*/private String driverLicense;/*** 安全票模板ID*/private String safetyTicket;/*** 打卡模板ID*/private String timeSheet;
}

4.接口类

package com.ruoyi.common.sendgrid;import java.util.List;
import java.util.Map;/*** @created: 2021/4/13* @description: 邮件服务平台接口类*/public interface SendGridService
{/*** 发送到邮件服务平台* @param templateId 模板ID* @param params 替换参数* @param to 收件人* @return*/public boolean sendGridOutLookToXXXMail(String templateId, Map<String, Object> params, List<String> to);}

5.接口实现类

package com.ruoyi.common.sendgrid.impl;import com.alibaba.fastjson.JSON;
import com.google.common.base.Throwables;
import com.ruoyi.common.config.SendGridConfig;
import com.ruoyi.common.config.SendGridTemplateConfig;
import com.ruoyi.common.sendgrid.SendGridService;
import com.sendgrid.*;
import com.sendgrid.helpers.mail.objects.Email;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import java.io.IOException;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;/*** @created: 2021/4/13* @description:*/
@Slf4j
@Service
public class SendGridImpl implements SendGridService
{@Autowiredprivate SendGridConfig sendGridConfig;@SneakyThrows@Overridepublic boolean sendGridOutLookToXXXMail(String templateId, Map<String, Object> params, List<String> toList){try{String from = sendGridConfig.getFrom();for (String to : toList){//SendGrid 秘钥String apiKey = sendGridConfig.getApiKey();SendGrid sg = new SendGrid(apiKey);Request request = new Request();request.setMethod(Method.POST);request.setEndpoint("mail/send");request.setBody(getEmailContent(from, to, templateId, params));Response response = sg.api(request);System.out.println(response.getStatusCode());System.out.println(response.getBody());System.out.println(response.getHeaders());}return true;} catch (IOException e){e.printStackTrace();}return false;}/*** 组织邮件内容模板* @param from 发件方* @param to 收件方* @param templateId 模板ID* @param params 参数* @return*/private  String getEmailContent(String from, String to, String templateId, Map<String, Object> params){Map<String, Object> dataMap = new HashMap<>();dataMap.put("from", new Email(from));dataMap.put("template_id", templateId);Map<String, Object> persMap = new HashMap<>();persMap.put("to", Arrays.asList(new Email(to)));persMap.put("dynamic_template_data", params);dataMap.put("personalizations", Arrays.asList(persMap));return JSON.toJSONString(dataMap);}
}

SpringBoot发送邮件通过SendGrid服务平台(带动态模板)相关推荐

  1. (附源码)springboot社区养老医疗服务平台 毕业设计 041148

    springboot社区养老医疗服务平台 摘  要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 社区养老医疗服务平台,主要的模块包括查看 ...

  2. Springboot毕设项目宠物服务平台rx4i0java+VUE+Mybatis+Maven+Mysql+sprnig)

    Springboot毕设项目宠物服务平台rx4i0java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql ...

  3. SpringBoot“互联网+”居家养老服务平台微信小程序的设计与实现源码

    活动地址:毕业季·进击的技术er  博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌

  4. SpringBoot+vue大学生就业服务平台

    文章目录 项目介绍 主要功能截图: 前台 登录 首页 招聘信息 宣讲会 学生报名 后台 企业管理 招聘信息管理 岗位管理 投掷信息管理 宣讲会管理 轮播图管理 部分代码展示 设计总结 项目获取方式

  5. Web前端期末大作业-生活服务平台购物商城模板html源码(HTML+CSS)

  6. (附源码)spring boot社区养老医疗服务平台 毕业设计 041148

    springboot社区养老医疗服务平台 摘  要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 社区养老医疗服务平台,主要的模块包括查看 ...

  7. (附源码)spring boot社区养老医疗服务平台 毕业设计041148

    springboot社区养老医疗服务平台 摘  要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 社区养老医疗服务平台,主要的模块包括查看 ...

  8. (附源码)springboot高校二手教材管理平台 毕业设计 231057

    目  录 摘要 1 绪论 1.1 研究意义 1.2开发现状 1.3论文结构与章节安排 2高校二手教材管理平台 系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据 ...

  9. spring boot社区养老医疗服务平台 毕业设计源码041148

    springboot社区养老医疗服务平台 摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 社区养老医疗服务平台,主要的模块包括查看首 ...

最新文章

  1. 斜挎包长度到哪里合适_济宁百叶窗哪里好
  2. python主要运用于-Python八大主要应用领域,你都知道吗?
  3. 【Linux网络编程】TCP网络编程中connect listen和accept三者之间的关系
  4. 将前端文件和Go程序打包
  5. [UE4]创建游戏、加入游戏
  6. python 下载或者直接读取csv文件
  7. GFW Rule list
  8. html编辑器拖拽表格边框,Ueditor百度编辑器表格边框显示问题
  9. Matlab Copula函数实现
  10. VASP 系列001. 高通量计算 Python 库 pymatgen 安装和一些使用(用 pymatgen 画 HSE 能带的细节和输出图片字体的简单调整)
  11. MySQL教程:MySQL数据库学习宝典(从入门到精通)
  12. hdu 5025 Saving Tang Monk(bfs+状态压缩)
  13. Open Wifi SSID Broadcast vulnerability
  14. Consumer is not subscribed to any topics or assigned any partitions
  15. CityEngine2016-学习笔记(2)Shape Operations
  16. PE系统与U盘启动工具的推荐
  17. 前端过程性考核,肝了一宿终于肝出来了!!!
  18. 2020年二级计算机msoffice题库,2020年计算机等级MSOffice考试试题及参考答案
  19. esxi服务器更换硬盘,ESXi下磁盘分区删除步骤详解
  20. html怎么吧图片设置成背景音乐,如何把照片做成视频并添加音乐

热门文章

  1. 深入理解 OpenStack Neutron:VXLAN
  2. 微信小程序 申请第三方平台流程
  3. 操作系统-文件存储空间管理
  4. 通过U盘安装系统时,提示无法在驱动器分区上安装windows的解决办法
  5. 抖音账号矩阵系统源代码开发
  6. 李泉老师《高级商务礼仪锻造》
  7. 国家杰青,任同济大学新校长!
  8. win7计算机二进制,二进制-系统爱好者
  9. 禅道类似软件_六大Jira项目管理软件替代品
  10. 2020.04.16今日份学习小结