2009-09-09 63 views
0

我在ubuntu機器上運行本地apache服務器,並試圖使用phpmailer類發送郵件。 它試圖通過fsockopen連接到郵件服務器,但它會引發超時錯誤。我試圖將超時設置爲15秒而沒有運氣。 它可以在其他機器上工作。php fsockopen無法連接,連接超時錯誤

我如何知道我的ISP是否阻止了請求? 郵件服務器響應ping。

+0

你連接了什麼郵件服務器?大多數住宅ISP不允許外出端口25連接到除自己以外的任何服務器。嘗試將傳出服務器更改爲您的ISP的SMTP服務器。 – Craig 2009-09-10 15:18:22

+0

您是否可以使用MUA(thunderbird/outlook/mail.app)通過它發送電子郵件? – Shoan 2009-09-15 02:17:06

+1

我有'fsockopen'這個問題,主機有多個IP地址。我可以telnet/swaks到相同的主機名沒問題,但fsockopen總是超時。通過使用'gethostfromname()'然後直接使用IP,'fsockopen'非常快樂,並且沒有超時。很奇怪。 – artfulrobot 2014-12-11 10:48:11

回答

2

ping和SMTP命令不通過相同的端口;有可能打開一個端口,而不是另一個端口。

如果出現超時,這可能意味着:

  • 或者您的SMTP服務器是不是從你的服務器
  • 接受連接或有一些地方(如防火牆)這是阻止您的要求。

如果你有服務器的SSH訪問,使用命令行telnet來嘗試連接到SMTP服務器,發送SMTP命令,可以讓你得到一些更多的信息.​​..

下面幾個是通過telnet顯示SMTP會話的實例鏈接:

如果你不能連接到服務器,也許你會得到一些錯誤信息(告訴你,你不允許連接,例如),否則它會再次超時......這可能意味着您的請求是被阻止在某處...

在這種情況下,請諮詢您的網絡管理員;也許他會想到在防火牆上打開一些端口。

+0

謝謝,我的ISP阻止了端口25 – 2009-09-15 08:35:47