如何从 Sendgrid Inbound Parse Webhook 获取数据?

How to get data from Sendgrid Inbound Parse Webhook?

目标
处理来自 Sendgrid Inbound Parse Webhook 的数据,而不在我们的应用程序中解析邮件。

问题
multipart/from-data 似乎是 empty/corrupt 或在应用程序内部被错误访问。

描述
几个月前,我们使用我们的 MX 记录设置了 Sendgrid Inbound Parse Webhook,一切都在 ngrok 的开发环境中运行。解析后的电子邮件到达了我们的应用程序 (PHP 8) 并且可以进行处理。我们可以访问参数 TO、FROM、TEXT,HTML 我们也得到了附件。

昨天我们检测到,webhook 推送的电子邮件无法再在应用程序中处理。表单数据似乎为空或已损坏。在 ngrok 中,我们在摘要中看不到任何数据。唯一的一行是“9324 字节 multipart/form-data;边界=xYzZY”。

当我们用 ngrok 重放 post 并设置 XDEBUG_SESSION 进行调试时,我们可以看到,表单数据是 empty/missing.

几个月前,当我们现在启用“发送原始”选项时,我们会在 ngrok 摘要中看到整个有效负载,如下所述:https://sendgrid.com/docs/for-developers/parsing-email/setting-up-the-inbound-parse-webhook/ 在“原始有效负载示例”下。因此,当我们启用“发送原始数据”时,我们可以在应用程序内部处理数据,但因此我们必须在代码中重写一些内容,以便我们自己解析原始数据。 我们希望避免这种情况,尤其是因为它在几个月前就已经起作用了。

也许,任何人有想法并且可以帮助解决或已经遇到这个问题?

终于找到答案了:

如果请求正文太大或有附件,ngrok 不会 post 如果您点击重播按钮,因为它不再存在。 似乎 ngrok 不会缓存它,如果它太大的话。