繁体   English   中英

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

[英]How to check if mail server has been configured or not?

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

如果不是,则该消息应坚持启用它。

有人可以告诉我如何检查吗?

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

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

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

如果这些参数表示某些正确的值,则可以检查php.ini参数,例如sendmail_path 您也可以尝试发送测试邮件,但请阅读有关函数返回值的手册

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

重要的是要注意,仅仅因为邮件已被接受送达,并不意味着邮件实际上将到达预期的目的地。

这意味着,如果mail()返回true,则不表示服务器配置正确。 可以接受邮件的传递,但是MTA(邮件传输代理)可能实际上无法连接到Internet,或者可能崩溃,或者...

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

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

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

请参阅我的另一篇有关如何检查邮件是否实际发送的帖子 那里的信息也适用于PHP。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM