Sendgrid:使用webhooks(php api)获取反弹状态代码
我使用Sendgrid发送电子邮件。电子邮件是使用他们的web API发送的,我使用一个端点来获取每个电子邮件事件 以下是此端点的代码(在发送电子邮件后,每次事件发生时都会调用Sendgrid) 我想获得每个事件的状态代码(例如:5.1.1的反弹) 以下是我到目前为止所做的尝试:Sendgrid:使用webhooks(php api)获取反弹状态代码,php,html,rest,email,sendgrid,Php,Html,Rest,Email,Sendgrid,我使用Sendgrid发送电子邮件。电子邮件是使用他们的web API发送的,我使用一个端点来获取每个电子邮件事件 以下是此端点的代码(在发送电子邮件后,每次事件发生时都会调用Sendgrid) 我想获得每个事件的状态代码(例如:5.1.1的反弹) 以下是我到目前为止所做的尝试: $data = file_get_contents("php://input"); $events = json_decode($data, true); foreach ($events as $event) {
$data = file_get_contents("php://input");
$events = json_decode($data, true);
foreach ($events as $event) {
$sg_message_id = $event['sg_message_id']; //OKAY
$event = $event['event']; //OKAY (eg : "bounce")
$status = $event['status']; //NOT OKAY ("undefined index")
//and if I try :
$status = $event['event']['status']; //I get the first letter of the event (eg : "b" for bounce)
}
文档(这里:,Bounce部分)说有一个字段“status”(例如:5.1.1),我不明白为什么它不起作用
有什么想法吗?我理解这个问题:
$data = file_get_contents("php://input");
$events = json_decode($data, true);
foreach ($events as $event) {
$sg_message_id = $event['sg_message_id']; //OKAY
$event = $event['event']; //OKAY (eg : "bounce")
$status = $event['status']; //NOT OKAY ("undefined index")
//and if I try :
$status = $event['event']['status']; //I get the first letter of the event (eg : "b" for bounce)
}
我试图用一封假用户电子邮件模拟跳出错误,比如
user@gmail1.com
但是Sendgrid没有处理电子邮件(无法访问主机),并返回了一个“已删除”事件
相反,如果我发送电子邮件至:
另一个用户-unknow@gmail.com
然后sendgrid返回一个进程事件,然后返回一个反弹事件,反弹状态代码为:)输出
$event
你有什么?@chris85$event是一个对象,脚本只有在事件发生时才被调用,是否可以保存它的内容?$event
应该是一个数组,不是<代码>打印($event)代码>是否存在状态?@chris85 yes$事件是一个数组,错误日志显示“状态”不存在,但上面的文档说我们可以访问更多信息,但我无法打印,因为只有sendgrid通过发布数据来调用此页,是否可以将此数组存储在数据库中?@chris85我终于明白了问题所在(我把答案贴在下面),无论如何谢谢克里斯!