Windows命令实现匿名邮件发送

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

举个例子:使用[email protected] 发送一封邮件到 [email protected]。

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

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

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

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

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

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

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

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

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

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

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

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

时间: 2024-08-12 16:45:41

Windows命令实现匿名邮件发送的相关文章

通过telnet命令进行网络邮件发送

1.建立smtp邮箱服务连接 open smtp.sina.com 25 2.连接上邮箱服务后进行握手操作 helo smtp.sina.com 3.输入帐号密码进行验证::此步后缓冲区会输出一些字符,你只需要将准备好的base64编码的账户输入,回车后输入同样base64的密码即可 auth login 4.设置发送方用户邮箱 mail from:<[email protected]> 5.设置接收方邮箱 rcpt to:<2311223265@qq.com> 6.设置数据头,代

C#邮件发送问题(二)

C#邮件发送问题(一) 三.C#下创建基于TcpClient发送邮件组件 在上一节在Dos命令行下测试SMTP服务器连接时,已经使用了SMTP的部分命令,但是当时无法对信息进行编码和解码,也就无法继续进行身份验证和信息传输.在.Net库中,我们可以使用System.Net.Sockets.TcpClient类实现上一节发送邮件组件的同样功能(其实OpenSmtp也同样是基于这个组件开发的),这里仅作为测试以充分了解SMTP协议规范. 1.SMTP命令及其响应 邮件发送的基本过程是一问一答的方式与

Python写自动化之邮件发送(匿名)

为了能够实现邮件发送功能,首先,我们需要了解一下邮件的发送过程是什么样子的,此处不再详细说明,请大家自行搜索或查看http://www.sogouqa.com/?p=438 在了解了邮件的发送过程后,为了实现邮件的全自动匿名发送,我们需要通过windows的命令行,解析邮件的匿名服务器,然后使用匿名服务器,发送邮件到相应的邮箱 代码如下: def _get_mail_exchanger(domain_name,name_server=""): #print domain_name te

Python邮件发送脚本(Linux,Windows)通用

脚本 #!/usr/bin/python #-*- coding:utf-8 -*- #Python Mail for chenglee #if fileformat=dos, update fileformat=unix #code:set fileformat=unix #check:set ff ? import smtplib from email.mime.text import MIMEText from email.utils import formataddr my_sender

Windows Server 2003搭建邮件服务器

由于Windows Server 2003默认是没有安装我们搭建邮件服务器所需要的POP3和SMTP服务的,因此需要我们自己来安装.方法如下: 1. 将Windows Server 2003的系统光盘放入光驱,或者将镜像文件挂载到虚拟光驱.在控制面板中点击“添加或删除程序”,在“添加或删除程序”对话框中,点击“添加/删除Windows组件”.Hn 2. 在“Windows组件向导”中,需要进行如下操作: ① 安装POP3服务. 选中“电子邮件服务”,双击打开,会看到它包括“POP3服务”和“PO

.NET开发邮件发送功能的全面教程(含邮件组件源码)

ref: http://www.cnblogs.com/heyuquan/p/net-batch-mail-send-async.html 今天,给大家分享的是如何在.NET平台中开发"邮件发送"功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1)         邮件基础理论知识 2)         邮件发送相关.NET类库 3)         介绍我开发的一个发送邮件的小组件(MailHelper) 4)         MailHelper组

linux 配置邮件发送功能

1.mutt+msmtp的安装 默认情况下smokeping发送邮件使用sendmail,但是sendmail配置起来真心不是一般的麻烦,而且也没有必要,完全大材小用了,所以我就想用mutt+msmtp的方案来发送告警邮件. 首先安装mutt和msmtp这两个软件. 如果是在在线安装,那么直接apt-get install就好了,会自动帮助我们安装关联包. 如果是在离线环境下,我们可以先在有线环境下安装.然后再将用到的安装包拷贝的离线环境下安装(这是因为使用apt-get install会将所有

用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇

在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还是很耐心的. 最终结论,是由于MailKit发送了两次EHLO命令,查看了MailKit源码后竟然发现,里面写了硬编码: if (host != "smtp.strato.de" && host != "smtp.sina.com") Ehlo (can

实全邮件发送操作手册

实全邮件发送工具是采用VS2008 C# 开发.基于SMTP邮件传输协议.使用.Net SmtpClient进行的邮件发送客户端工具.SMTP 是一种TCP协议支持的提供可靠且有效电子邮件传输的应用层协议.SMTP 是建立在 TCP上的一种邮件服务,主要用于传输系统之间的邮件信息并提供来信有关的通知.工具由邮件管理客户端及邮件发送服务程序组成.邮件管理客户端主要用于邮件发送配置及邮件内容管理:邮件发送服务程序是Windows服务程序,它将即时读取邮件进行发送.工具可广泛用于应用系统跟踪.报警.工