2016-09-13 94 views
0

我有cPanel服务器运行相同的脚本,但我硬编码服务器名称的代码,因为我找不到任何地方抓住实际的服务器域。如何从PHP中为SMTP查找服务器域名?

试想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()。

+0

你是什么意思,域名?您将在该服务器上托管的网站的域名,还是服务器自己的网络主机名? –

回答

0

花了一段时间才找到这个问题,并在撰写问题时找到了答案。与其浪费我认为是一个很好的问题(因为我不能轻易找到答案),那就是:

新的PHP 5.3:

gethostname(); 

就是这样,好和甜蜜。

在这里阅读更多:PHP function gethostname

+0

我不认为@Exit是要求托管的域名,我认为他实际上是在为他/她的SMTP找出邮件服务器或域名。 – FluxCoder

0

你可以给自己发送一封电子邮件,在电子邮件标题的外观(在Outlook:打开邮箱,查看 - >选项,有“互联网头)

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

这页你应该找到的信息。