码迷,mamicode.com
首页 > Windows程序 > 详细

Windows命令实现匿名邮件发送

时间:2015-03-19 10:16:06      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:匿名   邮件   nslookup   

在日常工具开发中,经常会有发送邮件的需求。在一些高级语言中,如Python,C#中,都有专门的邮件发送模块,如Python 中的 smtplib 模块。那么,一封邮件到底是如何发送到一个特定的邮箱呢?

举个例子:使用test@163.com 发送一封邮件到 test@qq.com。

首先,看下邮件系统的组成部分,如下图

技术分享

再看下邮件发送的整个过程,如下图:

技术分享
①发送者使用SMTP协议,将邮件发送到自己邮箱服务器

②163邮件服务器使用SMTP协议,将邮件发送到QQ邮件服务器

③收件人使用POP3协议,从服务器端读取邮件

在上面过程中我们会发现两个问题:

①163邮件服务器需要验证发送方是否是合法用户。也就是说在整个发送过程中,需要使用到test@163.com的密码才能完成整个邮件发送过程。

②163邮件服务器如何发送邮件到QQ邮件服务器的呢?其实,这中间有个域名解析的过程。发送方会根据收件人的信箱来解析其服务器域名(qq.com),在该解析过程中,询问其邮件服务器的地址。

既然验证过程是在163邮件服务器,那么我们是不是可以直接绕过去,直接模拟请求跟QQ邮件服务器进行交互呢?答案是肯定的,而邮件发送的整个过程可以抽象成下图

技术分享

我们可以发现关键的地方是如何解析QQ邮件服务器的地址。此处我们使用Windows命令nslookup来进行域名解析。查看qq.com的邮件服务器地址,可以使用命令:nslookup -qt=mx qq.com,结果如下:

技术分享
其中 mail exchanger 后面就是qq.com 的邮件服务器地址。

这样,我们就绕过了密码验证的过程,将邮件直接发送到了收件人的邮件服务器,想要了解代码如何实现,欢迎查看之前的文章“Python写自动化之邮件匿名发送

Windows命令实现匿名邮件发送

标签:匿名   邮件   nslookup   

原文地址:http://blog.csdn.net/sogouauto/article/details/44451865

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!