做了一個郵件轉發的代理小程序,需要向SMTP服務器發送自定義郵件。
在調試過程中,用戶名、密碼都通過驗證了,在發送郵件主體信息時,SMTP郵件服務器返回:
550 ILLEGAL CONNECTION
檢查了與SMTP服務器交互的所有信息,發現在與服務器打招呼時,使用了以下的語句:
EHLO 10.0.0.120:40712
EHLO 後面是我自己生成的本次連接的IP和端口信息,當時隨手就這麼寫了,該語句與SMTP服務器正常交互。
感覺問題可能出在這裏,於是按EHLO語句的標準用法:
EHLO 10.0.0.120
測試通過,SMTP服務器正常接收郵件。
結論:EHLO語句是客戶端標識自己的語句,後面必須是客戶主機名或IP地址,寫了多餘的東西,可能會被SMTP服務端拒收。