之前沒有試過這種方式的郵件發送,今天正好碰到一些相關問題,所以研究了一下,遇到了很多問題,最終還是成功了。
完整過程如下,還是很有意思的。
下面的例子是用qq的smtp服務器。
telnet smtp.qq.com 25
220 smtp.qq.com Esmtp QQ Mail Server helo sis
250 smtp.qq.com auth login
334 VXNlcm5hbWU6 ***
334 UGFzc3dvcmQ6 ***
235 Authentication successful mail from: <350510376@qq.com>
250 Ok rcpt to: <350510376@qq.com>
250 Ok data
354 End data with <CR><LF>.<CR><LF> to: hello
from: nian
subject: this is a test telnet smtp mail
hello,telnet
.
250 Ok: queued as
做一些說明,可能遇到的問題是
1、首先telnet命令不存在,自己去百度下安裝即可,很簡單。
2、在和服務器通訊時 helo sis,回車后可能會出現【502 Error: command not implemented】,可以重新輸入helo sis,或者helo 其他內容都可以,這邊只是打個招呼。
出現上面的錯誤,多試幾次即可,可能是服務器狀態比較忙。
3、auth login后需要輸入你的qq郵箱的用戶名和密碼,而且要轉換為BASE64編碼,隨便找個百度應用都有這個功能。如QQ 352000114 用戶名對應MzUwNTEwMzc2,
此過程可能也要多做幾次,鑒於服務器的狀態。
4、輸入用戶名和密碼后出現如下錯誤【發送郵件錯誤 454 Authentication failed, please open smtp flag first!】,
這個是我糾結了好久的問題,解決方式如下:
在QQ郵箱的設置里面,找到賬戶-》POP3/IMAP/SMTP選擇開啟POP3/SMTP服務
5、to: hello “郵件收件人的名稱
from: nian ”郵件來源名稱
subject: this is a test telnet smtp mail “主旨
hello,telnet ”內容
6、最后輸入點,回車即結束郵件的發送
7、退出連接,可使用命令 quit
2012.09.04 雨