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

Php 如何检查邮件服务器是否已配置?,php,sendmail,Php,Sendmail,我需要制作一个安装脚本,其中我需要检查邮件服务器是否配置正确 如果没有,那么消息应该坚持启用它 有人能告诉我怎么检查这个吗 我尝试制作一个邮件脚本,并使用phpcli运行它 它返回true,但从未收到任何邮件。基本上,您没有完美的方法来检查服务器是否配置为正确发送邮件 您可以检查php.ini参数,例如sendmail\u path,如果这些参数代表一些正确的值。您也可以尝试发送测试邮件,但请阅读: 如果邮件已成功接受传递,则返回TRUE,返回FALSE 否则 重要的是要注意,仅仅因为邮件被接受

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

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

有人能告诉我怎么检查这个吗

我尝试制作一个邮件脚本,并使用
phpcli
运行它


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

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

您可以检查php.ini参数,例如
sendmail\u path
,如果这些参数代表一些正确的值。您也可以尝试发送测试邮件,但请阅读:

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

重要的是要注意,仅仅因为邮件被接受 但这并不意味着邮件将实际到达预定的目的地 目的地

这意味着如果
mail()
返回true,这并不表示服务器配置正确。邮件可能会被接收以进行传递,但MTA(邮件传输代理)可能在实际连接到internet时出现问题,或者可能会崩溃,或者

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

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

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

另请参阅关于如何检查邮件是否实际发送的信息。这里的信息也适用于PHP。

看看这里