2017-04-19 51 views
1

我測試下面的代碼用不同的電子郵件服務器,只有smtp.gmail.com是響應以下簡單的代碼:爲什麼有些電子郵件服務器不響應smtlib.SMTP('xxxx')?

>>> import smtplib 
>>> s=smtplib.SMTP('smtp.gmail.com') 
>>> s.help() 
'2.0.0 https://www.google.com/search?btnI&q=RFC+5321 b188sm4817528wmh.6 - gsmtp' 
>>> s.quit() 
(221, '2.0.0 closing connection b188sm4817528wmh.6 - gsmtp') 

很確定。

但是這(和許多其他提供商)超時:

>>> s=smtplib.SMTP('smtpmail.t-online.de') 

返回錯誤:

error: [Errno 10061] No connection could be made because the target machine actively refused it

>>> s=smtplib.SMTP('wpxxxxxxxx.mailout.server-he.de',25) 

返回:

error: [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond

我認爲是因爲SSL。所以我用:

>>> smtplib.SMTP_SSL("wpxxxxxxx.mailout.server-he.de", 465) 

嘗試與不同的端口nr的。電子郵件服務器的名稱一定正確 那麼什麼是獨特的關於smtp.gmail.com? 我怎麼能讓其他人工作?

-Thanks-

+0

嘗試使用端口587。 – Barmar

回答

0

在嘗試此我自己,我碰到可能不同的問題,可以幫助別人。這是我的發現。

互聯網服務提供商是可怕的。各方面。

在這種情況下,我的ISP阻止端口25

從我的本地機器我嘗試這樣做。

>>> import smtplib 
>>> s=smtplib.SMTP('smtp.gmail.com') 

這最終超時了相同的error: [Errno 10060]

好奇,我回落到遠程登錄

$ telnet smtp.gmail.com 25 
Trying ... 
telnet: Unable to connect to remote host: Connection timed out 

咦?爲什麼GMail會放棄我的連接請求?除非......

$ ssh some.ec2.machine 
$ python 
>>> import smtplib 
>>> s=smtplib.SMTP('smtp.gmail.com') 
>>> 

,瞬間連接..原來,我的ISP,還有誰,但康卡斯特,阻止所有流量通過端口25

通過使用VPS,我是能夠建立連接到Google郵件和其他主機。

我試圖爲您指定的地址相同的Telnet連接:

$ telnet smtpmail.t-online.de 25 
telnet: connect to address 194.25.134.114: Connection refused 
telnet: connect to address 194.25.134.115: Connection refused 

Connection Refused的情況下,這是在服務器端配置錯誤。

通常,服務器將接受數據包或完全丟棄數據包。在這種情況下,服務器正在運行,並主動拒絕連接。

相關問題