有時我們需要知道收到的郵件是從哪台服務器發送過來的,或者想知道該郵件的報文頭是怎樣的。以下以網易郵箱為例介紹如果抓取這些信息。
首先我們需要知道網易郵箱的訪問服務器(拉協議),由於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地址和服務器地址都顯示出來了,以上。
此文原創,轉載請注明出處,謝謝!