对邮件服务器的一点思考

Posted sunansheng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对邮件服务器的一点思考相关的知识,希望对你有一定的参考价值。

正常发送邮件

我们一般使用SMTP服务器帮我们代发邮件。例如我申请了一个163邮箱,我会通过客户端,使用用户名和密码登录163的SMTP服务器,帮我代发邮件到QQ邮箱或者其它邮箱。这个时候我们是需要有用户名和密码的,否则163的SMTP不会允许我们发送邮件。

那么问题来了,在163给QQ邮箱发送邮件的时候,163怎么登录到QQ邮箱的?如果不登陆,那么QQ怎么允许163发送邮件?

该问题的思考

可能使用的解决方法:

1.每个SMTP服务器都用一个默认的匿名账户,类似FTP的匿名。

2.使用单独的服务器IP,用户邮件服务器之间的邮件交换。

MX记录

除了以上了问题,还有一个问题。给定一个邮箱地址如何知道邮箱服务器的IP地址?

答案肯定是通过域名设置的,每个域名都会设置MX记录,用于查找对方邮件服务器的地址。可以通过nslookup查询。

C:\\Users\\suns>nslookup

> set type=mx
> qq.com

非权威应答:
qq.com  MX preference = 20, mail exchanger = mx2.qq.com
qq.com  MX preference = 10, mail exchanger = mx3.qq.com
qq.com  MX preference = 30, mail exchanger = mx1.qq.com

mx2.qq.com      internet address = 14.215.140.20
mx1.qq.com      AAAA IPv6 address = 2402:4e00:8010::af

从结果中可以看到,mx2.qq.com、mx3.qq.com、mx1.qq.com,都是对方SMTP服务器的地址。

那么这个时候,第二种方式就最有可能了,因为我们客户端设置的QQ SMTP地址是:smtp.qq.com。

最终实验发现,使用MX记录获得的SMTP地址不用登陆即可发送邮件,但是只能发给本域的邮箱地址。这些大牌的邮件服务器都会进行必要的校验,防止我们乱发邮件。

一些福利

因为我们自己可以作为邮局来发送邮件,那么这个时候发件人什么的都可以自己进行设置了。我测试QQ邮件的时候,使用admin@baidu.com邮箱进行发送的时候会进行错误提示,提示DNS的ip校验错误:

550 SPF check failed [MraFGBRmMtV9SLG8AGEhJnwLt0lUKuPNrULkU8/Lgq9iwCSogqh0tkA= IP: 110.80.20.170].

但是我换成admin@baidu123.com就可以进行发送了。百度知名度比较高,因此有进行DNS校验,我测试了几家企业的邮箱,很多可以正常发送,所以敏感邮件不能只看发件人

声明:Nansheng.Su 发表于 2019-04-28 16:33:00 ,共计529字。

转载请署名:对邮件服务器的一点思考 | www.sunansheng.com

以上是关于对邮件服务器的一点思考的主要内容,如果未能解决你的问题,请参考以下文章

对于函数名本质的一点思考

关于使用原生Javascript的一点思考

MySQL-Front 建表引发的一点小思考(数据表格模版)

工作中上的一点思考

对ThreadLocal实现原理的一点思考

对扩展openflow协议的一点思考