2016-09-13 100 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

這頁你應該找到的信息。