通过命令行+简单邮件传输协议(SMTP)发送电子邮件


背景就不介绍了,因为能搜到这篇文章的你肯定知道命令行和SMTP是啥子东西。

不知道也没关系,总之这篇文章能够教你如何通过命令行发送邮件,命令行就是Windows系统下在运行栏输入cmd之后显示的界面,MacOS下打开终端。

好了,现在你应该看到一个界面了,嗯,就是酷似电影中黑客的那种。


远程登录

telnet serverName 25

唔,这里需要解释一下。

telnet从字面也能知道就是远程登录的意思;

serverName需要自己修改成发件邮箱的服务器名称,一般为 ‘smtp.’ + 邮件地址@符号后边的内容。比如网易的是smtp.163.com,腾讯的是smtp.qq.com,大学为smtp.xxx.edu.cn;

25表示25号端口,不懂也没关系,只需记住是25就好,因为25号端口是smtp专用的端口。

一般输入完这行命令后,会收到一个220开头的回复,表示你远程登录成功啦!


问好

HELO XXX //HELO为必写,空格之后随便输入点什么

HELO就是hello的意思,远程登录之后咱得打个招呼不是(误。

另外,这里的HELO大写小写都无所谓,不知道大小写混合行不行,我没试,不过感觉应该没问题。

这时服务器会返回OK的字样,说明勾搭成功。


登录

auth login

输入完这个之后,服务器会返回两个334开头的字符串,不用管它是什么意思,总之返回第一个334后输入邮箱用户名,返回第二个后输入邮箱密码。

需要注意的是,需要把用户名和密码转换成base64格式(百度一搜就有在线转换网站),另外这里的用户名只需要邮箱地址@符号前边的部分即可。


发信人&收信人

MAIL FROM: <From address>

RCPT TO: <To address>

这两个需要如实填写邮件地址,特别是收件人的。

不过这里我有个小猜测,就是发件人地址瞎写好像也行,没试,有兴趣的朋友可以帮忙试试看~


邮件内容

DATA

输入之后就可以愉快滴写邮件了。

from: balabala
to: balabala
subject: balabala

balabalabalabalabalabalabalabala
.

其中subject为可选字段,正文的话需要空一个空行后再输入。

最后如果想结束输入的话,需要“输入回车”-“输入一个英文句号”-“再输入回车”即可。


结束

QUIT

ok,这样邮件就发送成功啦!

大家在实验到这步后可能会遇到554错误,我在用163和QQ邮箱时均会出现。这是垃圾邮件的意思,据说是因为网易和腾讯限制的原因,他们希望你使用客户端而不是命令行。不过我换成学校的邮箱就哦了。


好了,通过命令行+SMTP发送邮件的测试到此结束!



Leave a Reply

Your email address will not be published. Required fields are marked *