【问题标题】:Swiftmailer crashes without php errorSwiftmailer 在没有 php 错误的情况下崩溃
【发布时间】:2015-06-04 02:31:44
【问题描述】:

我有一个允许用户上传 pdf 的网络应用程序,然后它会通过 swiftmailer 将其通过电子邮件发送给我们。对于某些 pdf,该过程会失败。

我可以验证它是否使 php 脚本崩溃,但没有返回任何 php 错误。服务器有一个 500 错误,但通常如果有一个 500 错误,php 会有一个错误日志。

我还验证了它在 $mailer->send($message); 线

奇怪的是,只有一些 pdf 会崩溃,而那些相同的 pdf 在具有相同代码的开发服务器上可以正常工作。

什么可能导致 php 在没有错误消息的情况下崩溃?

【问题讨论】:

  • 确保在服务器中enable the PHP logs
  • PHP 已经成功记录了几个月的错误和警告。这是唯一一个在崩溃时不记录错误的进程。这不是php的配置。它也不是它的上传部分,因为我已经验证文件已正确上传。
  • 也许 swiftmailer 代码在运行时禁用了日志记录。
  • 不,它记录了来自同一站点上其他电子邮件进程的其他 swiftmailer 错误,代码几乎相同(from 和 to 行不同)。

标签: php swiftmailer


【解决方案1】:

在运行了几次测试后,我发现有时会发生错误记录,但有时不会发生。我不明白为什么会这样,但是,我尝试重命名 php-errors.log 文件,以便 php 以一个新的、全新的日志文件开始,现在错误被正确记录。我不知道为什么会这样,但我会接受的。

【讨论】:

    【解决方案2】:

    仅供参考,我遇到了两件事会导致 PHP 崩溃而没有错误消息:

    1. 脚本超时 - 超时可能会阻止返回错误消息;在我的特殊情况下,当超时发生时,脚本正在等待 SMTP 响应,这可能是我没有收到超时消息的原因。尝试将 php.ini 中的 max_execution_time 值更改为 300(5 分钟),看看是否能收到实际的错误消息。
    2. 文件夹权限 - 我遇到过文件夹权限不足导致脚本停止而没有提供错误的情况。

    在 2 的情况下,我在导致停止的行周围包裹了一个 try/catch 子句,最后我得到了一个异常来解释权限问题。作为对无声崩溃的一般响应,这可能值得尝试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-16
      • 1970-01-01
      • 2022-10-13
      • 2017-09-07
      • 2016-03-19
      • 2015-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多