Mailgun Webhook Access

时间:2015-08-19 16:12:57

标签: webhooks mailgun

我们目前正在实施Mailgun的webhook,以便在我们的应用程序中的评论帖子中将电子邮件回复转换为回复。我们设置了一条匹配收件人的路线,并将操作设置为store(notify="https://example.com/example-endpoint")。 Mailgun将数据POST到给定的端点,然后我们处理该消息并将其添加到应用程序注释线程。

我的问题是

如何锁定端点,以便Mailgun是唯一可以在此处发布的实体?是否有可列入白名单的IP列表?是否有他们发送的特殊密钥,我可以根据私有API密钥进行验证?

1 个答案:

答案 0 :(得分:1)

我在文档中找到了自己的答案。我应该更仔细地阅读文档。

https://documentation.mailgun.com/user_manual.html#webhooks下的“保护Webhooks”部分说:

  

为确保事件请求的真实性,Mailgun会签名并发布签名以及其他webhook参数。

我必须使用api密钥作为HMAC密钥,将有效负载中的signature值与timestamptoken的SHA256 HMAC哈希值进行比较。

例如:

$_POST['signature'] === hash_hmac('sha256', $_POST['timestamp'] . $_POST['token'], 'example-api-key);