邮件的发送原理我们应该知道,比如我们用搜狐的邮箱发给网易的邮箱,要先经过搜狐的smtp服务器,再由搜狐的smtp服务器发给网易的smtp服务器。网易的用户想看邮件就用pop3协议登陆到网易所分配的邮件空间去取。
之前我们所做的都是先连接smtp服务器,这个过程是需要验证身份的,但当两个smtp服务器相互连接的时候,难道他们也要验证身份?还有他们怎么知道各自的smtp地址呢?(比如我们登陆时候是用telnet smtp.163.com,这个地址我们知道,但别的服务器怎么知道)
答案是:他们通过域名解析。
比如我们输入nslookup 看下图 环境是redhat linux 当然windows下也一样。
当输入
>set type = mx
>sohu.com
可以看到显示的结果。分别试了搜狐和新浪,结果显示了它们各自有几个服务器地址。
比如新浪,它有三个服务器进行集群,而且如果我们反复输入命令,这三个服务器显示的顺序不断的更换,这可以看出每次请求服务器轮流提供服务,这就实现了负载均衡。
我们再来看看网易的,有多少个,自己数数吧! 毕竟人家丁磊是靠邮件起家的,网易的邮箱是最强的,这点也不难猜到。
OK,现在我们来利用我们之前在linux配好的邮件服务器来连接一下搜狐的一个smtp服务器吧。还是搜狐好测试,别的总不成功。图片上我做了说明,命令和上篇文章介绍的一样。这里要说的是我用的本地的服务器fantlam.com 搜狐发现是域名它就进行解析,发现是smtp服务器,这样就有区别我们用客户端去连。这是等于说我们是作为smtp服务器帮人投递信件的,理所当然现在不用身份验证。
经过测试发现在rctp发给的人必须是搜狐的邮箱,别的不行,这就说我们现在是帮人家投信件到搜狐的邮箱,至于帮谁嘛,这个没有强求,随便写,这又是可以伪装来发送邮件了。。。
发送成功了,输入中文也行,一开始我还以为又会有乱码问题呢!!!仔细对照命令和收到的结果吧,现在我们比上次在内容上多写了to:<fantlam@fantlam.com> 虽然意义不大,但它在收件人那里已经显示了,细心的人应该会留意上次这里是没有的。