2016-02-11 96 views
0

我想用telnet來發送電子郵件與SMTP。似乎我已成功連接到郵件服務。信息也被放入隊列中。但是爲什麼SMTP服務無法將消息發送到收到的地址的Telnet SMTP發送郵件超時

當我搜索的互聯網解決方案,有人說,防火牆應該支付它。但我不知道防火牆或防病毒軟件與telnet之間的關係。

這是我的命令:

220 smtp-5-124.smtpsmail.fmail.xd.sinanode.com ESMTP 
helo a 
250 smtp-5-124.smtpsmail.fmail.xd.sinanode.com 
auth login 
334 VXNlcd5hbWU6 
a25vd215aGV2341241fasYS5jbg== 
334 UGFzczdvcmQ6 
UmF5V2adfa23adsfZzgyNA== 
235 OK Authenticated 
mail from: <[email protected]> 
502 unimplemented (#5.5.1) 
mail from:<[email protected]> 
553 Envolope sender mismatch with login user.. 
mail from:<[email protected]> 
250 ok 
rcpt to:<[email protected]> 
250 ok 
data 
354 End data with <CR><LF>.<CR><LF> 
subject: test 
to:<[email protected]> 
from:<[email protected]> 
Testttttttttttttt! 
. 
250 ok queue id 6744281442287 
451 Timeout. 

順便說一句,我嘗試了兩種在Windows 10和Ubuntu的15.10。他們兩個都沒有提出同樣的問題。

+0

然後你需要檢查郵件服務器的日誌。你上面得到的東西就相當於把一個紙質包裝物放到街角,然後把它放入郵箱。你需要檢查郵政服務(smtp服務),看看它清空郵箱後會發生什麼 –

+0

@MarcB謝謝。我檢查了日誌。但沒有什麼。最後我發現這是因爲我的郵件格式。多麼荒謬的錯誤...... – WingCuengRay

回答

0

最後,我發現,我錯了。

在我以前的情況下,我無法發送電子郵件與上述code.I已成功地與SMTP服務器的連接,以及除「超時」反應一切正常。實際上,的「超時」並不意味着我沒有發送電子郵件,而是失去了TCP連接。幾小時後來,我登錄我的電子郵件,用於發送,發現我收到一封郵件。郵件告訴我,我用telnet發送幾個小時之前發來的電子郵件被退回,未能發佈。所以這意味着這個原因很難,因爲我的telnet客戶端,但在服務器或其他。

最後,我發現,這是因爲我的郵件格式的。在我之前的代碼中,在發送關鍵字 - 「數據」之後,我立即發送內容。

data 
354 End data with <CR><LF>.<CR><LF> 
subject: test 
to:<[email protected]> 
from:<[email protected]> 
Testttttttttttttt! 
. 
250 ok queue id 6744281442287 

當我改變它到它,它的工作。

data 
354 End data with <CR><LF>.<CR><LF> 
subject: test 
to:<[email protected]> 
from:<[email protected]> 

Testttttttttttttt! 
. 
250 ok queue id 6744281442287 

請注意,代碼之間的差異是此郵件中內容之前的空行。 「subject」,「to」和「from」是標題。標題和內容之間必須有一個空行。

同樣,在郵件標題可以忽略不計。該代碼是這樣的:

data 
354 End data with <CR><LF>.<CR><LF> 

Testttttttttttttt! 
. 
250 ok queue id 6744281442287 
451 Timeout. 

即使是有「超時」,它影響什麼,但打破本地主機和SMTP服務器之間的TCP連接。