【问题标题】:How to find server domain name for SMTP from PHP?如何从 PHP 中找到 SMTP 的服务器域名?
【发布时间】:2016-09-13 17:33:21
【问题描述】:

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

想象一下 3 个 cPanel 服务器,它们是服务器域:

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

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

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

我尝试了 ini_get('SMTP'),它只返回一个无用的 'localhost'。

我尝试了 ini_get_all(null,false),但没有任何乐趣。

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

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

【问题讨论】:

  • 什么意思,域名?您将在该服务器上托管的站点的域,或服务器自己的网络主机名?

标签: php apache server-name


【解决方案1】:

花了一段时间才找到这个,在撰写问题时,我找到了答案。与其浪费我认为的好问题(因为我无法轻易找到答案),不如在这里:

自 PHP 5.3 起的新功能:

gethostname();

就是这样,又好又甜。

在此处阅读更多信息:PHP function gethostname

【讨论】:

  • 我不认为@Exit 是在询问其托管的域名,我认为他实际上是在尝试为他/她的 SMTP 找出邮件服务器或域名。
【解决方案2】:

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

正常的子域是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

你应该在那个页面上找到信息。

【讨论】:

    【解决方案3】:

    看看mxtoolbox

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

    【讨论】:

      猜你喜欢
      • 2012-10-20
      • 2021-07-16
      • 2010-09-07
      • 2013-03-21
      • 1970-01-01
      • 2014-09-06
      • 2014-03-12
      • 2016-10-19
      • 2013-07-12
      相关资源
      最近更新 更多