有时我们需要知道收到的邮件是从哪台服务器发送过来的,或者想知道该邮件的报文头是怎样的。以下以网易邮箱为例介绍如果抓取这些信息。
首先我们需要知道网易邮箱的访问服务器(拉协议),由于SMTP是推的协议,所以用SMTP是不行的;一般拉的协议用POP3、IMAP和HTTP。
这里我们用POP3来试一下。
首先用telnet连接pop3.163.com端口为110
~ telnet pop3.163.com 110 Trying 220.181.12.110... Connected to pop3.163.idns.yeah.net. Escape character is '^]'. +OK Welcome to coremail Mail Pop3 Server (163coms[b62aaa251425b4be4eaec4ab4744cf47s])
这表明连接成功,接下来输入用户名和密码, user 后面接用户名,pass后面接密码,提示OK则表明登录成功
user xxx@163.com +OK core mail pass 123456 +OK 916 message(s) [292053095 byte(s)]
接下来,可以使用list命令,列出收件邮的邮件列表
list +OK 916 292053095 1 2719 2 2167 3 3292 4 4325 5 10576 6 4377 7 1726 8 2474 9 7649 10 1324 11 2528 ...
说明一共有916封邮件,后面的应该是字节数;可以使用retr命令查看某封邮件的具体信息 retr +序号
retr 916 +OK 14544 octets Received: from out23-81.mail.alibaba.com (unknown [115.124.23.81]) by edm6 (Coremail) with SMTP id i8CowEBp83NsU4Nb7+_sBg--.7786S2; Mon, 27 Aug 2018 09:27:08 +0800 (CST) DKIM-Signature:v=1; a=rsa-sha256; c=relaxed/relaxed; d=newsletter.aliyun.com; s=s1024; t=1535333227; h=Date:From:To:Message-ID:Subject:MIME-Version:Content-Type; bh=IQju8gXaY8JZjRaGEbvXvhdHJHsWfAKAUR5MIBvJXqU=; b=m+jMdtCSilltqd4VXMrDW+zP86NE6VV0mfcVEmgDqCx1Y42ls0CZRkMQQxuTZQiu6Ky7ObFbo5bMptLjXglQ3816LTG8t3yYh3D8Hkb6zx1e0RrMErQLOlEJGdZWGY5ZJgJmqEC0kIVap3acicz/EGU1JmZ2QdT6W7SW65UqgFk= X-EnvId:46474622240 Received: from msc-channel180021171.sh(100.68.113.110) by smtp.aliyun-inc.com(127.0.0.1); Mon, 27 Aug 2018 09:27:07 +0800 Date: Mon, 27 Aug 2018 09:27:07 +0800 (CST) From: =?UTF-8?B?6Zi/6YeM5LqR?= <system@notice.aliyun.com>
...
可以看到发件人的ip地址和服务器地址都显示出来了,以上。
此文原创,转载请注明出处,谢谢!