原文链接: Telnet 发电子邮件 E-mail - Tansoz 探索者
说到发电子邮件(e-mail)可能很多人都会说用个网页的电子邮件网站,又或者使用图形界面的客户端程序,发就可以了。当然使用这些图形界面方便快捷,但其实电子邮件还是可以通过命令发送出去的,今天我就使用 QQ 的电子邮箱举个例子,是通过 Telnet 的快捷方式。下图就是通过 Telnet 连上 stmp.qq.com 服务器后的截图。
如果你也看得到这句话,那就证明你也连接上QQ的发邮件服务器了。你也知道,进入邮箱是需要登录的,所以你就得告诉服务器你是谁。
如何告诉服务器你是谁呢?那就的使用 HELO 命令了,语法就是“HELO [账号]”,就像上图那样。红色被抹掉的地方是我的邮箱地址,如果登录你的账号就得换成你自己的QQ邮箱地址。但你按了回车以后就会看到下面有一个250代号的语句输出,如果是其他代号,那你可能就代表你上面打的命令可能有问题。
告诉服务器你是谁以后,再告诉服务器你现在要验证登录,所以再发命令“auth login”命令过去,就如下面截图所示。
输入完命令“auth login”后按回车,现在它跑出了一句代号为334的语句“334 VXNlcm5hbWU6”,这句话是什么意思呢?其实这句话的意思是你接下来输入你的用户名。而“VXNlcm5hbWU6”是 Base64 的字符串。我现在就Base64 转明文给你们看看。通常我查看Base64,使用浏览器运行 JS(JavaScript)就可以了。
你也要打一个 Base64 的用户名给服务器,你可以使用浏览器的控制台字符串转成Base64,通过使用 window.btoa() 函数,把明文转成 Base64。下面我就用123456作为例子演示一下。
所以把自己的用户名转Base64后输入进去以后,会再跑一句代号为334的Base64字符串,那句话的意思当然是密码的意思咯。但是QQ邮箱的STMP服务器密码不是你的QQ密码。而是需要你在QQ邮箱先设置一个授权码。接下来是查看授权码过程。
进入QQ邮箱以后,点击设置选项。
进入设置以后点击账户选项。
找到上图的设置位置,并且看看你有没有开启IMAP/SMTP服务这个服务。如果没有就开启。如果开启了就不用管这个。
点击生成授权码选项。
然后当然就是按照它的提示进行操作,最后就会看到上图的一个框,蓝色区域的就是授权码。好了,就这样QQ邮箱的授权码就已经得到了。
当然你就得把授权码复制然后转为 Base64 的字符串后输入。注意:如果你不是使用QQ邮箱那大多数是你对应邮箱的登录密码了,即使不是授权码也需要转为 Base64。
当把密码账号这些弄完以后你就会看到如下图的样子。
但出现 Authentication successful 就代表你现在验证成功了,接下来就可以发邮件了。
当验证成功以后,就得告诉服务器你从那个电子邮箱地址发出,所以命令就是“MAIL FROM: <[你的邮箱地址]>”,接下来就得输入你要发给谁的邮箱地址,命令也很简单就是“RCPT TO: <[对方邮箱地址]>”。输入完后必须是250,如果出现例如501的就再次输入那个命令就行。
弄了那么多东西以后,就得是开始写邮件内容咯。所以你也得告诉服务器你要开始写邮件了。命令是“DATA”。输入完这个命令以后就可以开始正式的写邮件了,好像很麻烦吧。但是如果把整个过程写成代码程序,那不就能自动发送电子邮件了吗?对吧!
先不废话写代码发邮件,这个可能我下一次,在下一篇文章单独写。现在先把现在的邮件发出去。
From: XXX@xx.com
To: XXX@xx.com
Subject: XXXXXXXX
This is content.这个是内容部分。
就像这里这样在那个黑框框里面打就行了,只是你自己可能要灵活一点,把那些邮箱地址换一下,别照搬哦!因为得按照你自己的实际去写。但这些内容写完以后,那当然就得告诉服务器你已经写完了。你就要用命令“.”然后把邮件发出去。按了“.”回车后,看到250就代表邮件已经发送了。
下一次我会以代码程序的形式把这个过程写好,然后就可以程序自动发送邮件了。