为什么?我可以在 PHP 中通过 mail() 发送,但我不能使用 IsSendmail() 通过 PHPMailer 发送
7 回答
我有同样的错误。通过评论/删除解决它:
$mail->IsSendmail();
现在它可以正常工作了。我可以发送邮件,并在我的收件箱中收到它们。
你确定路径/usr/sbin/sendmail
正确吗?
如果是,请检查 sendmail 的权限是否设置正确。
我有同样的问题。花了将近一个小时检查日志,检查 sendmail 路径并从命令行测试 php mail() 和 sendmail,但无济于事。最后,我所做的就是使用 Apache 重新启动apachectl -k graceful
,宇宙就被治愈了。
对我来说,它正在与$mail->IsSMTP()
.
IsSendmail()
正在寻找发送邮件。
我同意上述集团。所有服务器上都启用了默认的 mail() 功能(我相信)。在我的情况下,我能够使用简单的 mail() 函数发送基本的 html,但是当我使用 PHPMailer 来执行此操作时,我遇到了该错误。
所以我删除了它检查的部分,即 IsSendMail(),一切都很好。现在抛出更多异常。
对于想要使用 SMTP 的人。首先在您的服务器上创建一个电子邮件帐户,然后在您的代码中定义其参数。
干杯,
塔尔哈
删除 IsSendmail() 只是为我创建了另一个错误,最后主机提供商不得不删除 PHP 设置上的安全模式。然后它起作用了
大卫·伯德斯编辑
不应在实时服务器上设置安全模式!例如在 Joomla 或其他 CMS 解决方案上运行的站点,除非在测试环境中,否则不应启用它
在共享服务器上启用的 PHP safe_mode
(也可能在其他服务器上)将无法打开/usr/sbin/sendmail
(PHPMailer 使用popen
)