telnet命令发送邮件

下面的例子是用qq的smtp服务器。

set localecho
本地回显启用
telnet smtp.qq.com 25
220 smtp.qq.com Esmtp QQ Mail Server
helo sis
250 smtp.qq.com//服务器返回250 smtp.qq.com
STARTTLS
220 Ready to start TLS//服务器返回 220 准备开启TLS通讯
auth login
334 VXNlcm5hbWU6//服务器返回334 VXNlcm5hbWU6(即Username:)
***/*此处输入base64编码后的qq邮箱名*/
334 UGFzc3dvcmQ6
***/*此处输入base64编码后的授权码,需要到qq邮箱申请,自己百度一下*/
235 Authentication successful
mail from: <3463684353@qq.com>//发件邮箱
250 Ok
rcpt to: <3463684353@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

补充一点,使用telnet要先打开SMTP服务,auth login之后要填写授权码

原文地址:https://www.cnblogs.com/cthon/p/9151467.html