小故事

记得在我上高中的时候,在网上搜到这个方法以后,重点并不是换个方法发邮件,而是在这段与邮件服务器沟通的命令里,有一条数据是可以随意写,进而导致邮件具有很强的欺骗性的:就是data from这个参数。它不像mail from参数要经过邮件服务器校验,而是随意一个地址都可用。而且这个from参数的值会显示在收件人收到的邮件的发件地址那里。所以这就实现了冒名发送邮件的功能。不过几年后我再拿出这套手法测试的时候,有的邮件服务器已经开始强行要求mail from和data from必须一致了。

记忆犹新的是,高中的时候得到了这套发假邮件的方法后,我就开始琢磨怎么逗一逗同学,于是我给几个关系比较好的同学发了一封下周放假的邮件,发件人地址就写成了我校校长的……

演示

发邮件除了使用邮箱服务商提供的各种客户端以外,还有一种方法,就是通过telnet连接邮件服务器,在命令行下完成邮件的撰写和发送。

  1. 打开 cmd/终端
  2. 为了省事,我把发送一封邮件所需要的交互命令一起列在下面;SMTP使用命令在客户端和服务器之间传输报文,即客户端发出一个命令,服务器返回一个应答。发送方与接收方一问一答的交互,由发送方控制这个对话。所以下面的命令应该逐行在cmd/终端中输入,并等待smtp服务器的返回结果,然后一步一步进行:

    telnet smtp服务器地址 端口
    helo server~
    auth login
    username         #base64编码过的
    password         #base64编码过的
    mail from:       #此处必须是用来发信的邮件真实地址
    rcpt to:         #收件人真实地址
    data 
    from:            #任意发自于地址
    to:              #任意收信人地址
    subject:         #此处空一行 正文
    .                #以.结束并回车即可提交给邮件服务器发送
    quit             #退出

base64编码