SpringBoot发送邮件通过SendGrid服务平台(带动态模板)
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服务平台(带动态模板)相关推荐
- (附源码)springboot社区养老医疗服务平台 毕业设计 041148
springboot社区养老医疗服务平台 摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 社区养老医疗服务平台,主要的模块包括查看 ...
- Springboot毕设项目宠物服务平台rx4i0java+VUE+Mybatis+Maven+Mysql+sprnig)
Springboot毕设项目宠物服务平台rx4i0java+VUE+Mybatis+Maven+Mysql+sprnig) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql ...
- SpringBoot“互联网+”居家养老服务平台微信小程序的设计与实现源码
活动地址:毕业季·进击的技术er 博主介绍:✌在职Java研发工程师.专注于程序设计.源码分享.技术交流.专注于Java技术领域和毕业设计✌
- SpringBoot+vue大学生就业服务平台
文章目录 项目介绍 主要功能截图: 前台 登录 首页 招聘信息 宣讲会 学生报名 后台 企业管理 招聘信息管理 岗位管理 投掷信息管理 宣讲会管理 轮播图管理 部分代码展示 设计总结 项目获取方式
- Web前端期末大作业-生活服务平台购物商城模板html源码(HTML+CSS)
- (附源码)spring boot社区养老医疗服务平台 毕业设计 041148
springboot社区养老医疗服务平台 摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 社区养老医疗服务平台,主要的模块包括查看 ...
- (附源码)spring boot社区养老医疗服务平台 毕业设计041148
springboot社区养老医疗服务平台 摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 社区养老医疗服务平台,主要的模块包括查看 ...
- (附源码)springboot高校二手教材管理平台 毕业设计 231057
目 录 摘要 1 绪论 1.1 研究意义 1.2开发现状 1.3论文结构与章节安排 2高校二手教材管理平台 系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据 ...
- spring boot社区养老医疗服务平台 毕业设计源码041148
springboot社区养老医疗服务平台 摘 要 随着社会的发展,社会的各行各业都在利用信息化时代的优势.计算机的优势和普及使得各种信息系统的开发成为必需. 社区养老医疗服务平台,主要的模块包括查看首 ...
最新文章
- 斜挎包长度到哪里合适_济宁百叶窗哪里好
- python主要运用于-Python八大主要应用领域,你都知道吗?
- 【Linux网络编程】TCP网络编程中connect listen和accept三者之间的关系
- 将前端文件和Go程序打包
- [UE4]创建游戏、加入游戏
- python 下载或者直接读取csv文件
- GFW Rule list
- html编辑器拖拽表格边框,Ueditor百度编辑器表格边框显示问题
- Matlab Copula函数实现
- VASP 系列001. 高通量计算 Python 库 pymatgen 安装和一些使用(用 pymatgen 画 HSE 能带的细节和输出图片字体的简单调整)
- MySQL教程:MySQL数据库学习宝典(从入门到精通)
- hdu 5025 Saving Tang Monk(bfs+状态压缩)
- Open Wifi SSID Broadcast vulnerability
- Consumer is not subscribed to any topics or assigned any partitions
- CityEngine2016-学习笔记(2)Shape Operations
- PE系统与U盘启动工具的推荐
- 前端过程性考核,肝了一宿终于肝出来了!!!
- 2020年二级计算机msoffice题库,2020年计算机等级MSOffice考试试题及参考答案
- esxi服务器更换硬盘,ESXi下磁盘分区删除步骤详解
- html怎么吧图片设置成背景音乐,如何把照片做成视频并添加音乐