最近看《计算机网络》,在应用层学到了一个协议叫SMTP协议,该协议用于系统间Email的传输。
明白了其中的原理,下面动手尝试实现一个SMTP交互的实例。
一、启用Windows的“Telnet Client”功能。
作为win10用户,利用系统已经安装好的telnet,然后在cmd中使用Telnet命令和SMTP协议命令可以实现发送邮件的基本功能。
而win10下的telnet默认是不开启的,需要手动开启。
1、打开控制面板—程序—程序与功能—启动或关闭Windows功能,找到Telnet Clinet并勾选。
2、打开Dos窗口,输入telnel命令测试smtp服务,成功后如下图(不成功则会出现" ‘telnet’ 不是内部或外部命令,也不是可运行的程序或批处理文件" 的信息):
二、开通QQ邮箱的SMTP服务。
QQ邮箱的smtp服务默认是关闭的,也需要手动开启。
若想发送邮件,则发件方和收件方都需开启此服务。
1.登录QQ邮箱,点击:设置——账户。
2.找到“IMAP/SMTP服务”,点击开启(我已开启)。
3.开启之后,系统会给我们一个“授权码”,这个授权码将作为邮箱的登录密码。若忘记授权码,则可点击上图所示的“生成授权码”再次获得授权码。
三、使用Telnet登录QQ邮箱发送邮件。
第一步:打开cmd,输入telnet servername 25(smtp服务器默认端口号是25),如:
第二步:服务器返回220,表示连接成功。
220 newxmesmtplogicsvrszc6.qq.com XMail Esmtp QQ Mail Server.
第三步:输入 helo qq.com ,向服务器表明身份。
helo qq.com
此步成功后会出现:
250-newxmesmtplogicsvrsza5.qq.com-9.22.14.83-18450343
250-SIZE 73400320
250 OK
第四步:输入 auth login,登录账户。
auth login
此步成功后会出现:
334 VXNlcm5hbWU6
第五步:输入邮箱的 base64 编码(xxxxxxxxxx@qq.com的base64编码)。
64base编码网址
然后服务器会返回:
334 UGFzc3dvcmQ6
第六步:输入开启 IMAP/SMPT 时授权码的 base64 编码(注意授权码无空格)。
出现以下表示登录成功:
235 Authentication successful
第七步:输入发送人邮箱
mail from:<xxxxxxxxxx@qq.com>
第八步:输入收信人邮箱
rcpt to:<xxxxxxxxxx@qq.com>
第九步:输入 data 回车,开始编辑邮件内容
data
第十步:依次输入
From:<发送者的email>
To:<接受者的email>
Subject:<发送主题》
空一行
<发送内容>
. (输入点代表编辑结束)
然后邮件就发出去啦!
第十一步:输入quit离开
完整过程是: