Sendmail 运行正常,但 PHP 无法使用它

Sendmail 运行正常,但 PHP 无法使用它

我在 LAMP(redhat 7 服务器)上使用 PHP 发送邮件时遇到问题。我已配置sendmail,可以使用以下命令发送电子邮件:

$ sendmail [email protected] <press enter>
message body <press enter>
ctrl+d (sends message)

并且任何提及的电子邮件地址都可以成功收到该消息。

但是当我使用 PHP 脚本(在其他服务器上运行良好)时,PHP 脚本无法发送任何电子邮件。

没有错误/etc/mail/maillog/,并且我尝试了不同的路径,php.ini例如sendmail_path

/usr/sbin/sendmail -t -i

/usr/sbin/sendmail -t

/usr/sbin/sendmail

这三个人什么也没做。

许可/usr/sbin/sendmail666

任何在任何地方都能运行的 PHP 脚本,在这种新环境中都无法运行。我尝试过的其中一个脚本如下:

<?php if(mail("[email protected]","A Subject Here","Hi there,\nThis email was sent using PHP's mail function.")) print "Email successfully sent"; else print "An error occured"; ?>

请提出建议。

答案1

首先,您sendmail_path在 php.ini 中使用的路径是错误的。我猜是缺少/一行、输入错误或复制/粘贴失败:

它应该是这样的:

/usr/sbin/sendmail -t -I

/usr/sbin/sendmail -t

/usr/sbin/sendmail

您可以自己找出正确的路径,如果您有权访问 shell,请输入以下内容:

whereis sendmail

并且您还应该将 sendmail 的二进制文件的权限设置为755使用chmod,以便 php 脚本能够执行它。

为了进一步诊断,您还应该检查 Apache 错误日志(或类似位置)。您可以通过查看或虚拟主机文件/var/log/httpd/error_log中以下参数的值来找到默认/虚拟主机的确切错误日志位置:apache.conf.conf

ErrorLog

相关内容