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 internalmail
功能。此第三方库可能提供一种测试方法来检查此SMTP服务器是否可访问。虽然如果配置正确,这似乎可以提供更合适的反馈,但实际上它也是有限的。此配置中提供的SMTP服务器可能是本地服务器。这一个将接受要发送的邮件,但这并不能保证这些邮件是实际发送的
这似乎是一个令人不满意的答案,但实际上问题并没有那么严重。大多数共享主机都正确设置了其邮件环境。如果有一台专用服务器,可以假设所有者能够自己解决邮件服务器的问题
如果在输出信息时检查sendmail_路径
,然后将邮件(检查返回值)发送到测试邮件地址,则必须检查邮件服务器配置,如果此邮件未正确到达,这就足够了
另请参阅关于如何检查邮件是否实际发送的信息。这里的信息也适用于PHP。看看这里