telnet连接邮件服务器

邮箱服务器相关信息

邮箱网站

  • 163邮箱:mail.163.com
  • qq邮箱:mail.qq.com

163邮箱相关服务器信息

服务器名称 服务器地址 SSL协议端口号 非SSL协议端口号
IAMP imap.163.com 993 143
SMTP smtp.163.com 465/994 25
POP3 pop.163.com 995 110

QQ邮箱相关服务器信息

服务器名称 服务器地址 SSL协议端口号 非SSL协议端口号
SMTP smtp.qq.com 465/587 25
POP3 pop.qq.com 995 110

开启SMTP和POP3服务

163邮箱

把下面的SMTP和POP3服务都打开
telnet连接邮件服务器_第1张图片

QQ邮箱

telnet连接邮件服务器_第2张图片

往下找,把SMTP和POP3服务都打开

telnet连接邮件服务器_第3张图片

Base64编码

Linux环境

进行base64编码

使用base64命令,例如密码为10086abc,命令如下:

echo -n '10086abc' | base64

则会在控制台输出如下编码后的结果

MTAwODZhYmM=

反编码

例如上面的编码后的结果 MTAwODZhYmMK ,执行以下命令:

echo -n 'MTAwODZhYmM=' | base64 -d

则会在控制台输出原密码

10086abc

Windows 环境

win + R 在打开的对话框中输入 powershell,按下回车。

cd 到对应的目录,使用命令进行转换。如下:

加密

例如把 a.txt 里面的内容加密到 b.txt

certutil -encode a.txt  b.txt

解密

例如把 a.txt 里面的内容解密到 b.txt

certutil -decode a.txt  b.txt

其他方法

网上找个 base64 在线加密解密的网站即可。(个人不太喜欢这种,如果对方有个密码本专门记录网站上输入过的东西,那么下次他要破解你的密码的时候,概率将大大提升)

使用telnet连接邮件服务器并发送邮件

需要输入的指令

helo zero
auth login
这行换成你的邮箱用户名的base64加密结果
这行换成你的密码或者授权码的base64加密结果
mail from: <[email protected]>
rcpt to: <[email protected]>
data
From: [email protected]  // 建议这两行的内容和上面写的地址一致,否则可能会被邮件服务器当成垃圾邮件来分类。
To: [email protected]
Subject: 主题
// 空行      // 这里直接按下会回车(不能省略)
正文
// 空行      // 同上面的空行
.            // 注意这个点,不能省略
quit

演示:

密码被我涂掉了。

tips:

  • helo 后面的内容可以随便填写(比如我填的是zero);
  • 在helo进行握手之后可以使用starttls声明是加密连接。

注意空行和点,如果遇到了登陆不上的问题,可以参考后面踩坑部分的内容

踩坑

  1. 邮件服务器必须开启SMTP和POP3服务,否则没法使用telnet登陆,这个在开头就说了该怎么做。
  2. Linux的echo命令默认是会多输出一个空行的,所以必须得加 -n 参数来取消空行,不然加密的结果验证不了!
  3. 用户名加密的时候不能带后缀,比如我的邮箱 [email protected],那我应该要对 zrsharp 进行加密,而不是前面的的地址!
  4. 163邮箱和QQ邮箱登陆SMTP用的并不是邮箱登陆密码,而是专有的授权码,需要将授权码进行base64加密,这点一定要注意!很多人总是验证失败就是因为这个。具体怎么获取授权码,请看后面的内容。
  5. 163邮箱的SSL协议端口号好像用不了,所以直接用非SSL的,比如SMTP就用25端口,别用465或者994。QQ邮箱如果也遇到了同样的问题,那么同样处理。

163邮箱获取授权码

网页登陆163邮箱,在设置里面找到相关内容即可。

telnet连接邮件服务器_第4张图片

注意:授权码生成之后只会显示一次,关闭窗口就没了,一定要记录下来!

QQ邮箱获取授权码

网页登陆QQ邮箱,点击设置,再点击账户,在这个页面就能找到相关选项了。

telnet连接邮件服务器_第5张图片

telnet连接邮件服务器_第6张图片

同样,赶紧把授权码记录下来。

你可能感兴趣的:(计算机网络,网络协议,网络通信)