Windows命令实现匿名邮件发送
来源:互联网 发布:俾斯麦号战列舰数据 编辑:程序博客网 时间:2024/05/29 23:44
在日常工具开发中,经常会有发送邮件的需求。在一些高级语言中,如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命令实现匿名邮件发送
- Windows命令实现匿名邮件发送
- Javamail实现的匿名邮件,模拟邮件服务器发送行为
- Windows下使用telnet命令发送邮件
- smtp匿名邮件发送小记
- php在windows下发送邮件实现
- Windows程序发送邮件
- Windows App 发送邮件
- windows blat发送邮件
- mail命令发送邮件
- linux 命令发送 邮件
- SMTP邮件发送命令
- Java发送匿名邮件—DNS解析
- Windows SVN变更发送邮件通知(JAVA实现)
- 实现邮件发送(delphi)
- JavaMail 实现邮件发送
- VC实现邮件发送
- javamail实现邮件发送
- java实例之方法的声明
- 【C语言】编写一个程序,从标准输入读取几行输入。每行输入都要打印到标准输出上,前面加上行号。编写这个程序的时候要使这个程序能够处理的输入行的长度没有限制。
- STL stack
- PRC_S_TRUNCATE_PARTITION
- 梆梆脱壳分析1-所有线程抗gdb技术实现
- Windows命令实现匿名邮件发送
- 代理模式与动态代理模式
- PRC_S_TRUNCATE_PARTITION(1)
- 模仿新浪微博@某人/#话题的效果
- Qt4过渡至Qt5
- PRC_S_TRUNCATE_PARTITION(2)
- cassandra
- C语言中memset函数详解
- 【IOS自定义工具类之缓存助手类】CacheHelper