• Windows命令实现匿名邮件发送


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

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

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

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


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

    ②163邮件server使用SMTP协议,将邮件发送到QQ邮件server

    ③收件人使用POP3协议,从server端读取邮件

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

    ①163邮件server须要验证发送方是否是合法用户。也就是说在整个发送过程中。须要使用到test@163.com的password才干完毕整个邮件发送过程。

    ②163邮件server怎样发送邮件到QQ邮件server的呢?事实上,这中间有个域名解析的过程。发送方会依据收件人的信箱来解析其server域名(qq.com),在该解析过程中,询问其邮件server的地址。

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

    我们能够发现关键的地方是怎样解析QQ邮件server的地址。

    此处我们使用Windows命令nslookup来进行域名解析。

    查看qq.com的邮件server地址,能够使用命令:nslookup -qt=mx qq.com,结果例如以下:


    当中 mail exchanger 后面就是qq.com 的邮件server地址。

    这样。我们就绕过了password验证的过程,将邮件直接发送到了收件人的邮件server。想要了解代码怎样实现。欢迎查看之前的文章“Python写自己主动化之邮件匿名发送

  • 相关阅读:
    堆、栈、值类型、引用类型分析总结 Part 2
    DataGridView打印
    学习使用ArrayList
    C#与Java之比较
    【原创】串口通信测试程序
    彩色校验码的制作
    C#中使用进度条
    【原创】 Ajax之ModalPopup编程实例
    常用正则表达式
    堆、栈、值类型、引用类型分析总结 Part 1
  • 原文地址:https://www.cnblogs.com/wzjhoutai/p/6877998.html
Copyright © 2020-2023  润新知