前回我们我们演示了如何使用SendGrid来发送邮件,但现在有个需求,就是需要实时获取发送邮件的状态(如:发送成功与否,对方有没有收到,收到之后的处理-打开,删除,判定为垃圾邮件等),这就需要用到SendGrid的WebHook功能了,下面我们具体来看看如何使用。

创建WebService

首先SendGrid的WebHook需要指定一个用作接收通知的WebService URL,如下:

@RequestMapping(value="/eventReceiver", method = RequestMethod.POST)
@ResponseBody
public void sendGridEventHook(@RequestBody String jsonString) throws IOException {ObjectMapper mapper = new ObjectMapper();List<Event> events = mapper.readValue(jsonString, new TypeReference<List<Event>>() {});for (Event event : events) {LOGGER.info("email: " + event.getEmail() + ", event: " + event.getEvent());}
}

因为SendGrid的WebHook的数据是以POST传递的JSON串,所以我们的WebService需要指定一个字符串作为参数。
上面的Event是一个自定义的实体类,里面包含了WebHook传递的各种数据。

以上的WebService部署到服务器之前是在本地运行的,是局域网的IP,要让SendGrid能够访问到,必须要映射成外网IP,这里我们可以通过nat123的外网映射功能,具体用法自行到网上查找。

SendGrid的设定

要让SendGrid能够访问到我们的WebService,我们需要在SendGrid的网页上进行绑定。
打开https://app.sendgrid.com/settings/mail_settings,然后展开Settings -> Mail Settings -> Event Notification进行WebHook的设定。如下图所示:

API文档

具体用法请参见以下API文档:

https://sendgrid.com/docs/API_Reference/Event_Webhook/event.html

SendGrid之WebHook的使用【Java】相关推荐

  1. 通过SendGrid进行邮件的发送【Java】

    在日常应用中,我们经常会用到自动发送邮件的场景,如注册成功邮件通知,找回密码邮件通知等.正好最近项目中使用SendGrid来进行邮件的发送,所以在此记录下,以备以后查阅. 根据官方的说明,SendGr ...

  2. *******系统监控技术选型

    中国*******银行系统监控架构说明 *张磊 2020-03-16 * **系统监控,经前期技术选型及调研,采用prometheus+influxdb+grafana开源架构,通过prometheu ...

  3. java测试smtp连接失败_java – MailConnectException:无法连接到主机,端口:smtp.sendgrid.net...

    我为sendGrid创建了API密钥: 我有以下春季邮件配置: spring.mail.default-encoding=UTF-8 spring.mail.host=smtp.sendgrid.ne ...

  4. Java项目中利用钉钉机器人Webhook向钉钉群推送告警通知

    今天来讲一下 Java项目中利用钉钉机器人Webhook向钉钉群推送告警通知 一.配置钉钉群 1.新建一个接收通知的钉钉群 如下图,创建一个接收通知的钉钉群 选择项目群,点创建 输入群名称,右侧选择群 ...

  5. java接收webhook,使用Java为Hangouts Chat API设置传入的webhook?

    我按照这里的示例(Incoming webhook with Python),它将一条简单的消息发送到环聊聊天室并按预期工作 from httplib2 import Http from json i ...

  6. java接收webhook,Webhook 通用触发插件

    原文链接    作者:Tomas Bjerre 译者:wenjunzhangp Webhook 通用触发插件 介绍通用 Webhook 触发插件,使用 Webhook 插件构建 Jenkins 自动化 ...

  7. JAVA接入STRIPE支付教程(测试环境),STRIPE支付的调用以及STRIPE WEBHOOK回调

    一.环境准备 1.注册 2.密钥 3.WEBHOOK回调 二.核心代码 1.配置API.key以及webhook.key 2.支付demo 3.WEBHOOK回调 一.环境准备 1.注册 STRIPE ...

  8. 以Java 8 为基准

    1.以Java 8 为基准 Spring Boot 2.0 要求Java 版本必须8以上, Java 6 和 7 不再支持. 2.内嵌容器包结构调整 为了支持reactive使用场景,内嵌的容器包结构 ...

  9. java B2B2C电子商务平台分析之十一------配置中心和消息总线

    Spring Cloud Bus Spring cloud bus通过轻量消息代理连接各个分布的节点.这会用在广播状态的变化(例如配置变化)或者其他的消息指令.Spring bus的一个核心思想是通过 ...

最新文章

  1. LeetCode实战:买卖股票的最佳时机
  2. Android开发六年收获阿里offer定级P7,多亏在阿里P8师兄给的攻略、面试技巧以及学习笔记!!!
  3. 世界首个2nm制程芯片公布!这次IBM跑在了台积电三星英特尔前面
  4. RocketMQ简介、环境搭建
  5. Oracle 数据库字典 sys.obj$ 表中关于type#的解释
  6. 【教程】Microsoft Wi-Fi Direct Virtual关闭方法
  7. FTP测试手机软件画画教程图片,手机绘画SketchBook原创教程
  8. 系统学习深度学习(十三)--Batch Normalization
  9. 设计模式之四 代理模式
  10. 欢迎使用CSDN-markdown编辑器,以及markdown的使用说明
  11. java电表抄表器接口_远程抄表系统接线图和远程抄表电表安装图及实例
  12. 计算机专业周记16篇,计算机专业实习周记10篇
  13. 5G协议 基本架构 专有名词简称和缩写
  14. 管道通信的基本流程和代码
  15. 金仓数据库 KingbaseES PL/SQL 过程语言参考手册(12. 异常处理)
  16. 小程序之 一个方法中的值怎么传递到另一个方法中
  17. 国内Cortex-M内核MCU产品性能哪家强?
  18. 3.3 Apache的管理及优化
  19. 招聘季如何面试软件测试岗位?超全面试题分享
  20. 1.2 UI设计之基本布局

热门文章

  1. 熟读100句英文,记7000单词
  2. 关于dma_alloc_coherent的用法
  3. vue首屏加载速度慢_Vue首屏加载速度优化如何提升80%?本文详解
  4. python手机编程软件-盘点几个在手机上可以用来学习编程的软件
  5. norton disk doctor
  6. UML在软件工程中的使用 建模—类图
  7. 开发环境 - pip install cv2下载失败的解决办法
  8. VisionPro初始化 - C#
  9. python数据分析师 前景_数据分析师的前景怎么样? 本人是程序员,最近对数据分析有兴趣……...
  10. 西安交通大学计算机博士名单,2017年西安交通大学博士生拟录取名单公示