下面的例子是用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之后要填写授权码