【问题标题】:PHPmailer reports: Could not execute: /usr/sbin/sendmailPHPmailer 报告:无法执行:/usr/sbin/sendmail
【发布时间】:2016-09-21 20:26:42
【问题描述】:

为什么? 我可以在 PHP 中通过 mail() 发送,但我不能使用 IsSendmail() 通过 PHPMailer 发送

【问题讨论】:

    标签: phpmailer


    【解决方案1】:

    我遇到了同样的错误。通过评论/删除解决它:

    $mail->IsSendmail();
    

    现在它可以正常工作了。我可以发送邮件,并在我的收件箱中收到它们。

    【讨论】:

    • 现在这个方法变成了isSendMail(),是的,它也对我有用。
    【解决方案2】:

    您确定路径/usr/sbin/sendmail 正确吗?

    如果是,请检查 sendmail 的权限是否设置正确。

    【讨论】:

    • 路径正确,我通过phpinfo()验证过;我不知道如何检查或设置 sendmail 的权限,它是一个共享托管服务器。
    • 不是每个共享主机都支持 sendmail。创建支持票并询问您的房东。
    【解决方案3】:

    我也有同样的问题。花了将近一个小时检查日志,检查 sendmail 路径并从命令行测试 php mail() 和 sendmail,但无济于事。最后我所做的就是使用apachectl -k graceful 重新启动 Apache,然后宇宙就被治愈了。

    【讨论】:

    • 在我的情况下,它只是 "service php-fpm restart" && "service httpd restart"
    【解决方案4】:

    对我来说,它与$mail->IsSMTP() 合作。 IsSendmail() 正在寻找发送邮件。

    【讨论】:

      【解决方案5】:

      我同意上述集团。所有服务器上都启用了默认的 mail() 功能(我相信)。在我的情况下,我能够使用简单的 mail() 函数发送基本的 html,但是当我使用 PHPMailer 执行此操作时,我遇到了该错误。

      所以我删除了它检查的部分,即 IsSendMail(),一切都很好。现在抛出更多异常。

      对于想要使用 SMTP 的人。首先在您的服务器上创建一个电子邮件帐户,然后在您的代码中定义其参数。

      干杯,

      塔尔哈

      【讨论】:

        【解决方案6】:

        删除 IsSendmail() 给我带来了另一个错误,最后主机提供商不得不删除 PHP 设置上的安全模式。然后它工作了

        大卫·伯德斯编辑

        不应在实时服务器上设置安全模式!例如,在 Joomla 或其他 CMS 解决方案上运行的网站,除非在测试环境中,否则不应启用它

        【讨论】:

          【解决方案7】:

          在共享服务器上启用safe_mode 的PHP(可能也在其他服务器上)将无法打开/usr/sbin/sendmail(PHPMailer 使用popen

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-06-11
            • 2012-08-24
            • 2016-11-12
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2023-02-08
            • 2023-03-05
            相关资源
            最近更新 更多