CMD下利用命令行发送SMTP协议邮件
工具:163邮箱一个,cmd窗口
特别注意:一定要一次性输入正确,退格键无效,一旦输入错误,需要整行命令全部重新输入。
常用命令
命令行 | 作用 |
---|---|
helo smtp | 和服务器打招呼,测试登陆进去没 |
auth login | 登陆具体邮箱,用户名和密码是经过base64加密的 |
mail from | 输入邮件的发送方 |
rcpt to | 输入邮件的接收方 |
data | 开始编写邮件 |
. | 结束编写邮件 |
quit | 退出 |
连接邮件服务器
输入telnet smtp.163.com 25
,
预期返回:
220 163.com Anti-spam GT for Coremail System (163com[20141201])
证明Telnet服务可以正常使用。
常见错误:
'telnet' 不是内部或外部命令,也不是可运行程序或批处理文件。
解决办法:开启telnet客户端
向服务器表明身份
输入helo 163.com
预期返回:
250 OK
登录认证
输入auth login
预期返回:
334 dXNlcm5hbWU6
输入邮箱名
输入邮箱名的base64编码后的字符串。
例如:邮箱名为test@163.com;
test编码后的字符串为dGVzdA==
(不需要将@163.com进行编码)
所以继续输入:dGVzdA==
后回车。
预期返回:334 UGFzc3dvcmQ6
。
输入密码(不是邮箱密码,是SMTP授权密码)
输入SMTP授权密码的base64编码后的字符串。
预期返回:235 Authentication successful
。
登陆成功。
编写邮件
输入发件人邮箱
输入:mail from:<testtesttest@163.com>
预期返回:250 Mail OK
。
输入收件人邮箱
输入:rcpt to:<1019198954@qq.com>
预期返回:250 Mail OK
。
输入正文命令
输入:data
预期返回:354 End data with <CR><LF>.<CR><LF>
,表示可以进行邮件正文输入,以单行.
结束正文输入。
正文
输入发件人邮箱
输入:from:testtesttest@163.com
输入接收者邮箱
输入:to:1019198954@qq.com
输入标题与正文内容
输入:subject:hello
(hello为标题)
标题之后必须空一行,下行开始表示邮件正文内容。
如图:
结束输入
输入:.
(单独占一行)
预期返回:250 Mail OK queued as smtp7,C8CowABnLs8Lw5NfoaioEw--.35799S2 1603520279
。
退出
输入:quit
预期返回:221 Bye
End
附录
SMTP返回码含义
代码 | 含义 |
---|---|
220 | 服务就绪 |
221 | 服务关闭传输信道 |
235 | 用户验证成功 |
250 | 要求的邮件操作完成 |
334 | 等待用户输入验证信息 |
354 | 开始邮件输入,以.结束 |
421 | 服务未就绪,关闭传输信道 |
502 | 错误的命令序列 |
535 | 用户验证失败 |
550 | 要求的邮件操作未完成,邮箱不可用(例如,邮箱未找到,或不可访问) |