【问题标题】:Can't log POST data from Mailgun PHP无法从 Mailgun PHP 记录 POST 数据
【发布时间】:2014-10-06 08:07:47
【问题描述】:

我目前正在尝试使用 Mailgun 的 webhook 来检索电子邮件,但遇到了一些问题。

我的 PHP 代码当前设置为抓取任何帖子数据并将其写入 txt 文件,因此我知道一切正常,但没有任何显示。

这是我目前的 PHP 代码...

if(!empty($_POST))
{
    $file = fopen('mail.txt','w');
    fwrite($file, var_dump($_POST));
    fclose($file);
}

很简单...然后我进入 Mailgun 上的日志并输入代码的 URL 并单击测试。 Mailgun 告诉我他们已经成功发送了一个示例请求,但是每次我进入我的 mail.txt 进行检查时,该文件仍然是空的。

我已将 txt 文件的权限更改为 655 以查看是否与此有关,但我仍然一无所获。我创建了一个 Mailgun bin URL 并在那里测试了 Webhooks,一切似乎都在工作。

有什么明显的我没有做的吗?

【问题讨论】:

  • 尝试使用虚假数据发布 URL。
  • 发现我的 PHP 文件没有将任何帖子数据写入我的 txt 文件。我会看看为什么,但谢谢你的评论。我很感激。
  • 我发现了这个有用的链接stackoverflow.com/questions/13361376/… 并发现 var_dump() 实际上不会写入文件。相反,我使用 print_r($_POST, true);
  • 虽然 POST 现在以表单形式工作,但我仍然从 Mailgun 中一无所获。 :(
  • 进一步调查,我可以在我的 Windows PC 上写入一个 txt 文件,但不能在 Linux 服务器上写入。权限已设置为 655 和 755 进行测试,但它仍然不会向 txt 文件写入任何内容。

标签: php mailgun


【解决方案1】:

我发现问题在于 Linux 服务器没有将 var_dump() 函数写入文本文件。我更改了文件夹的权限,自己创建了文件并更改了权限,删除了文件以允许 PHP 创建和写入文件,但这些都不起作用。

我的解决方案是使用这样的 ob 函数...

if(!empty($_POST))
{
    $file = fopen('mail.txt','w');
    ob_start();
    var_dump($_POST);
    fwrite($file, ob_get_clean());
    fclose($file);
}

我知道这会对服务器产生不良影响并且速度很慢。我仅将它用于初始测试,并且已被移除用于生产。

【讨论】:

    猜你喜欢
    • 2011-06-23
    • 2013-05-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-12
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    相关资源
    最近更新 更多