通过telnet使用smtp协议发送邮件-飞外

smtp协议是一个简单的邮件传输协议,利用它我们可以将邮件发送给别人,这里将通过telnet这个程序利用smtp协议从网易向gmail发送一封邮件

网上不少有说使用telnet发送邮件的文章,我也看过了,多数的步骤是这样的

1、使用telnet连接smtp服务器
2、发送一个helo或者ehlo指令
3、验证用户(使用邮件名登陆)
4、使用mail命令准备发送邮件
5、使用rcpt命令指定对方邮箱地址
6、使用data命令开始输入内容
7、输入test或者hello world类似字样(即邮件内容)
8、输入邮件内容结束标志.
9、退出smtp服务器

[root@newsclub east]#telnetsmtp.163.com 25 //登陆 smtp.163.com 端口号为 25
Trying 202.108.44.205...
Connected to smtp.163.com (202.108.44.205).
Escape character is '^]'.
220 163.com Coremail SMTP(Anti Spam) System
HELOlocalhost// 与服务器打招呼,并告知客户端使用的机器名字,可以随便填写
250 OK
AUTH LOGIN //使用身份认证登陆指令
334 dXNlcm5hbWU6
cmVkc29zMw==//输入已经base64_encode()过的用户名.
334 UGFzc3dvcmQ6
MbM2MDQ3NQ==//输入已经base64_encode()过的密码
235 Authentication successful
MAIL FROM: redsos3@163.com //告诉服务器发信人的地址
250 Mail OK
RCPT TO: yourframe@21cn.com //告诉服务器收信人的地址
250 Mail OK
DATA //正面开始传输信件的内容,且最后要以只含有 . 的特殊行结束。
354 End data with CR LF . CR LF
To:yourframe@21cn.com
From:redsos3@163.com
Subject:test mail
From:redsos3@163.com
test body
.//结束传输信件
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 :中断处理:用户超出文件空间