如何检查邮件服务器是否已配置?

时间:2014-03-25 12:42:18

标签: php sendmail

我需要制作一个安装脚本,我需要检查邮件服务器是否配置正确。

如果没有,那么该消息应该坚持启用它。

有人可以告诉我该如何查看?

我尝试制作邮件脚本并使用PHP CLI运行它。

它返回true但从未收到任何邮件。

1 个答案:

答案 0 :(得分:0)

基本上,您没有完美的方法来检查服务器是否配置为正确发送邮件。

您可以检查php.ini参数,例如sendmail_path,如果它们代表一些正确的值。您也可以尝试发送测试邮件,但请阅读the manual concerning return value of the function

  

如果邮件成功接受传递,则返回TRUE,FALSE   否则。

     

重要的是要注意,因为邮件被接受了   交付,并不意味着邮件实际上会达到预期的目的   目的地。

如果mail()返回true,则表示服务器配置不正确。邮件可能被接受递送,但MTA(邮件传输代理)可能在实际连接到互联网时遇到问题,或者可能崩溃,或者......

您可能希望使用第三方库,该库通过SMTP直接连接到MTA,并且不使用PHP内部mail功能。此第三方库可以提供一种测试方法来检查此SMTP服务器是否可访问。虽然如果配置正确,这似乎可以提供更合适的反馈,但实际上它也是有限的。此配置中提供的SMTP服务器可能是本地服务器。这个将接受要发送的邮件,但这并不能保证这些邮件是实际发送的。

这似乎是一个令人不满意的答案,但实际上问题并不那么严重。大多数共享主机都正确设置了邮件环境。如果有一个专用服务器,可以假设所有者能够自己解决邮件服务器的问题。

如果您检查sendmail_path然后在输出信息时将邮件(检查返回值)发送到测试邮件地址,则必须检查邮件服务器配置,如果此邮件未正确到达,这应该足够了。

另请参阅my other posting,了解如何检查邮件是否实际发送。这些信息也适用于PHP。