使用telnet登陆smtp服务发邮件(带身份验证)
使用telnet登陆smtp服务发邮件(带身份验证)
这几天做邮件发送的小程序,顺便查了一下为什么126、gmail等smtp邮件服务器,都不能使用实验课上的smtp指令发送邮件,当时根据返回信息,只知道服务器需要身份认证。
今天终于找出了telnet 登陆带身份认证的SMTP服务器的方法。
提供一个Base64编码的网址.asp
具体过程如下:
Microsoft Telnet/> open smtp.126.com 25
220 126.com Anti-spam GT Coremail System (126com[071018])
HELO mail.126.com
250 OK
AUTH LOGIN //使用身份认证登陆指令
334 dXNlcm5hbWU6
kjihgfedcba== //输入已经base64_encode()过的用户名.
334 UGFzc3dvcmQ6
abcdefghijk== //输入已经base64_encode()过的密码
235 Authentication successful
MAIL FROM:<yaochengxiang@126.com> //告诉服务器发信人的地址
250 Mail OK
RCPT TO:<yaochengxiang@gmail.com> //告诉服务器收信人的地址
250 Mail OK
DATA
354 End data with <CR><LF>.<CR><LF>
To:yourframe@162.com //在邮件中显示的收件人地址
From:Iamahacker@gmails.com //在邮件中显示的发件人地址
Subject:test mail //邮件主题,然后两次回车
Hello Yaos
. //结束传输信件
250 Mail OK queued as smtp14,F0CPBFsuzUOvoDwE.41582S2
QUIT //断开连接
221 Bye
Connection closed by foreign host.
状态码说明:
220 : 服务就绪
250 :请求邮件动作正确,完成(HELO,MAIL FROM,RCPT TO,QUIT 指令执行成功会返回此信息)
235 :认证通过
221 :正在处理
354 :开始发送数据,结束以 .(DATA指令执行成功会返回此信息)
500 :语法错误,命令不能识别
550 :命令不能执行,邮箱无效
552 :中断处理:用户超出文件空间