我正在尝试诊断某些电子邮件地址可能在我的服务器上被阻止的问题。我在 CentOS 5.7 上运行 PHP 5.3。 php.ini 文件列出了 sendmail_path /usr/sbin/sendmail -t -i
,在 CLI 中运行时该路径会挂在那里。我注意到我的服务器上也安装了 qmail,但我不知道 PHP 是否正在使用它。
如何找出 PHP 正在使用哪些 MTA(即 sendmail、qmail 等)?
答案1
TL;DR:PHP 没有关心关于您正在使用的 MTA。
更长的解释:这几乎可以追溯到 POSIX 标准本身,但是每一个正确编写的 MTA 将提供一个名为的二进制文件sendmail
,其行为如下确切地正如“官方”sendmail
程序预期的行为一样。
因此,每一个unix 程序或守护进程,出于某种原因,发现自己需要向某人发送电子邮件,知道他们可以/usr/sbin/sendmail
使用已知选项进行调用,并且确信安装的任何 MTA 都会知道如何处理来自那里的消息。
因此,除非您使用特定的 SMTP PHP 模块并明确使用不同的邮件设置(通常是具有或不具有 TLS 和/或身份验证的远程服务器/端口),否则它只会调用/usr/sbin/sendmail
并让底层发行版担心接下来会发生什么。
如果您的邮件没有到达,我建议您检查 MTA 的错误日志(通常在/var/log/mail.*
但取决于您的发行版和 MTA)以获取答案。