如何从 PHP 中查找 SMTP 的服务器域名?

How to find server domain name for SMTP from PHP?

我有 运行 相同脚本的 cPanel 服务器,但我已将服务器名称硬编码到代码中,因为我找不到任何地方获取实际的服务器域。

假设有 3 个 cPanel 服务器,这些是服务器域:

apple.hosting.com
banana.hosting.com
carrot.hosting.com

虽然 运行正在使用 PHP 脚本通过 SMTP 发送邮件,但我需要连接到服务器并希望使用为安全连接提供的服务器名称。

我不想创建 IP 地址数组然后进行比较,因为这不适用于专用 IP 地址。

我试过ini_get('SMTP'),只是returns没用'localhost'。

我尝试了 ini_get_all(null,false),但没有成功。

我检查了全局$_SERVER,但是只出现了被访问的域。

唯一返回服务器名称的是 phpinfo()。

找了好久,在写题的过程中,我找到了答案。与其浪费我认为的好问题(因为我无法轻易找到答案),这里是:

PHP 5.3 的新增功能:

gethostname();

就是这样,很可爱。

在此处阅读更多内容:PHP function gethostname

您可以给自己发一封电子邮件,查看电子邮件 header(在 Outlook 中:打开邮件,查看 -> 选项,有“Internet headers)

正常的sub-domain是mail.domain.com,另一种解决方案可以是:

按照这个: cpanel --> go to your mailing accounts -- > click on configure mail account -- > there somewhere in the page you will get the information about your smtp server

在该页面上您应该可以找到信息。

看看mxtoolbox

除此之外,您可能需要查看 stream-socket-client