Initial commit
[dmarc.git] / read_report.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 1,
6 "metadata": {
7 "collapsed": false
8 },
9 "outputs": [],
10 "source": [
11 "import configparser\n",
12 "import imaplib\n",
13 "# import ssl\n",
14 "# import base64\n",
15 "# import email.parser\n",
16 "import email\n",
17 "import io\n",
18 "import zipfile\n",
19 "import xml.etree.ElementTree"
20 ]
21 },
22 {
23 "cell_type": "code",
24 "execution_count": 2,
25 "metadata": {
26 "collapsed": false
27 },
28 "outputs": [
29 {
30 "data": {
31 "text/plain": [
32 "['dmarc.ini']"
33 ]
34 },
35 "execution_count": 2,
36 "metadata": {},
37 "output_type": "execute_result"
38 }
39 ],
40 "source": [
41 "config = configparser.ConfigParser()\n",
42 "config.read('dmarc.ini')"
43 ]
44 },
45 {
46 "cell_type": "code",
47 "execution_count": 3,
48 "metadata": {
49 "collapsed": false
50 },
51 "outputs": [
52 {
53 "data": {
54 "text/plain": [
55 "['server', 'username', 'port', 'password']"
56 ]
57 },
58 "execution_count": 3,
59 "metadata": {},
60 "output_type": "execute_result"
61 }
62 ],
63 "source": [
64 "[k for k in config['DEFAULT']]"
65 ]
66 },
67 {
68 "cell_type": "code",
69 "execution_count": 4,
70 "metadata": {
71 "collapsed": false
72 },
73 "outputs": [
74 {
75 "data": {
76 "text/plain": [
77 "'imap.njae.me.uk'"
78 ]
79 },
80 "execution_count": 4,
81 "metadata": {},
82 "output_type": "execute_result"
83 }
84 ],
85 "source": [
86 "config['DEFAULT']['server']"
87 ]
88 },
89 {
90 "cell_type": "code",
91 "execution_count": 5,
92 "metadata": {
93 "collapsed": false
94 },
95 "outputs": [],
96 "source": [
97 "mailbox = imaplib.IMAP4(host=config['DEFAULT']['server'], \n",
98 " port=config['DEFAULT']['port'])"
99 ]
100 },
101 {
102 "cell_type": "code",
103 "execution_count": 6,
104 "metadata": {
105 "collapsed": false
106 },
107 "outputs": [
108 {
109 "data": {
110 "text/plain": [
111 "('OK', [None])"
112 ]
113 },
114 "execution_count": 6,
115 "metadata": {},
116 "output_type": "execute_result"
117 }
118 ],
119 "source": [
120 "mailbox.starttls()"
121 ]
122 },
123 {
124 "cell_type": "code",
125 "execution_count": 7,
126 "metadata": {
127 "collapsed": false
128 },
129 "outputs": [
130 {
131 "data": {
132 "text/plain": [
133 "('OK', [b'Logged in'])"
134 ]
135 },
136 "execution_count": 7,
137 "metadata": {},
138 "output_type": "execute_result"
139 }
140 ],
141 "source": [
142 "mailbox.login(config['DEFAULT']['username'], config['DEFAULT']['password'])"
143 ]
144 },
145 {
146 "cell_type": "code",
147 "execution_count": 8,
148 "metadata": {
149 "collapsed": false
150 },
151 "outputs": [
152 {
153 "data": {
154 "text/plain": [
155 "('OK', [b'169'])"
156 ]
157 },
158 "execution_count": 8,
159 "metadata": {},
160 "output_type": "execute_result"
161 }
162 ],
163 "source": [
164 "mailbox.select('INBOX', readonly=True)"
165 ]
166 },
167 {
168 "cell_type": "code",
169 "execution_count": 9,
170 "metadata": {
171 "collapsed": false
172 },
173 "outputs": [
174 {
175 "data": {
176 "text/plain": [
177 "('OK',\n",
178 " [b'1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169'])"
179 ]
180 },
181 "execution_count": 9,
182 "metadata": {},
183 "output_type": "execute_result"
184 }
185 ],
186 "source": [
187 "mailbox.search(None, \"ALL\")"
188 ]
189 },
190 {
191 "cell_type": "code",
192 "execution_count": 10,
193 "metadata": {
194 "collapsed": false
195 },
196 "outputs": [
197 {
198 "data": {
199 "text/plain": [
200 "('OK', [b'164 165 166 167 168 169'])"
201 ]
202 },
203 "execution_count": 10,
204 "metadata": {},
205 "output_type": "execute_result"
206 }
207 ],
208 "source": [
209 "resp, nums = mailbox.search(None, \"SINCE 23-Mar-2016\")\n",
210 "resp, nums"
211 ]
212 },
213 {
214 "cell_type": "code",
215 "execution_count": 11,
216 "metadata": {
217 "collapsed": false
218 },
219 "outputs": [
220 {
221 "data": {
222 "text/plain": [
223 "[b'164', b'165', b'166', b'167', b'168', b'169']"
224 ]
225 },
226 "execution_count": 11,
227 "metadata": {},
228 "output_type": "execute_result"
229 }
230 ],
231 "source": [
232 "nums[0].split()"
233 ]
234 },
235 {
236 "cell_type": "code",
237 "execution_count": 12,
238 "metadata": {
239 "collapsed": false
240 },
241 "outputs": [
242 {
243 "data": {
244 "text/plain": [
245 "('OK',\n",
246 " [(b'169 (RFC822 {4480}',\n",
247 " b'Return-Path: <noreply-dmarc-support@google.com>\\r\\nDelivered-To: dmarc@njae.me.uk\\r\\nReceived: from localhost (localhost [127.0.0.1])\\r\\n\\tby mail.njae.me.uk (Postfix) with ESMTP id 2A065106\\r\\n\\tfor <dmarc@njae.me.uk>; Sun, 27 Mar 2016 10:28:09 +0100 (BST)\\r\\nX-Virus-Scanned: Debian amavisd-new at njae.me.uk\\r\\nAuthentication-Results: ogedei.njae.me.uk (amavisd-new);\\r\\n\\tdkim=pass (2048-bit key) header.d=google.com\\r\\nReceived: from mail.njae.me.uk ([127.0.0.1])\\r\\n\\tby localhost (ogedei.njae.me.uk [127.0.0.1]) (amavisd-new, port 10024)\\r\\n\\twith ESMTP id S06rrC9pLQlu for <dmarc@njae.me.uk>;\\r\\n\\tSun, 27 Mar 2016 10:28:07 +0100 (BST)\\r\\nReceived-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=209.85.223.201; helo=mail-io0-f201.google.com; envelope-from=noreply-dmarc-support@google.com; receiver=dmarc@njae.me.uk \\r\\nAuthentication-Results: mail.njae.me.uk; dmarc=pass header.from=google.com\\r\\nAuthentication-Results: mail.njae.me.uk; dkim=pass\\r\\n\\treason=\"2048-bit key; unprotected key\"\\r\\n\\theader.d=google.com header.i=@google.com header.b=kRG+/uqj;\\r\\n\\tdkim-adsp=pass; dkim-atps=neutral\\r\\nReceived: from mail-io0-f201.google.com (mail-io0-f201.google.com [209.85.223.201])\\r\\n\\tby mail.njae.me.uk (Postfix) with ESMTPS id 36952EB\\r\\n\\tfor <dmarc@njae.me.uk>; Sun, 27 Mar 2016 10:28:06 +0100 (BST)\\r\\nReceived: by mail-io0-f201.google.com with SMTP id 124so13927004iov.0\\r\\n for <dmarc@njae.me.uk>; Sun, 27 Mar 2016 02:28:06 -0700 (PDT)\\r\\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\\r\\n d=google.com; s=20120113;\\r\\n h=mime-version:message-id:date:subject:from:to:content-disposition\\r\\n :content-transfer-encoding;\\r\\n bh=WebWWyH674VepKwkY7+3OEpaPDkuJsYet/WYzuiqEhc=;\\r\\n b=kRG+/uqjzLNy4IsueOq2bd1CW4i2x4dzf5Dg+soCJzKTycsrUudvIkphybOCPAE4aW\\r\\n 1ffplA6Tt9mxOpAfYppahUPeWFXtCE5AEf3/qorGxcv/yHv8S3TFiUqulTLccOyLbhoG\\r\\n P02OxDg38XWHLob7gOKUsqdCAmPfxqATsvakVN/SJkJswU4Fm8iBBaoca7wgW/A97eJs\\r\\n zKnmyWvpc1juUp5YLYWVGwL9927tbw8bO+0acz53Qgwj+QScqSftMNeLzKS3Ct11RkvX\\r\\n W49XblUJOHS+lbtVF6radeGKbsGp09QClMLAyLKEUeYTTgux/K0CIuB3A+BmQ1O3Souk\\r\\n cN7A==\\r\\nX-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\\r\\n d=1e100.net; s=20130820;\\r\\n h=x-gm-message-state:mime-version:message-id:date:subject:from:to\\r\\n :content-disposition:content-transfer-encoding;\\r\\n bh=WebWWyH674VepKwkY7+3OEpaPDkuJsYet/WYzuiqEhc=;\\r\\n b=iy79Cfu0C9JtwPWMHnqS7hbVnFOcPMPttWMomjdh1ekeq+jxAg9335NteUoNg79PTo\\r\\n QSJbg9YAM4bvlFPOcPrSNQN+Q5fdopi1TuDBgHK7L0Rb9Vv8eKVRSG8pyLAw7Izs+y/H\\r\\n 9Rlh8qfOV3Te/pzQb+4eA+SS39D9O8L1Cmg2p19Y+XmNfX8xd/UhIKzXNNSbQODMOwnL\\r\\n xw0wmbMu/3wMgnUgJVfcp7BkZVhJzO7CqNfkGlv4BSpSGEH2+I0AwZFQgLfytwJ4j3nh\\r\\n oH217zO+us6vAE2gV3zneO4X3Pf88J7ma+I7Et6Bl2cM1TunPpisx6aqnzPdIMhJwMDt\\r\\n GM+w==\\r\\nX-Gm-Message-State: AD7BkJIXsS+d+n0kHSQlvoPQuXFYd9jWCwS846F7EdDD9cR1K1RkBPs0SrrYY9ARYXU/K7Bs7gdjAw==\\r\\nMIME-Version: 1.0\\r\\nX-Received: by 10.157.11.13 with SMTP id a13mr14086672ota.35.1459070885519;\\r\\n Sun, 27 Mar 2016 02:28:05 -0700 (PDT)\\r\\nMessage-ID: <2150510829392606201@google.com>\\r\\nDate: Sun, 27 Mar 2016 09:28:05 +0000\\r\\nSubject: Report domain: njae.me.uk Submitter: google.com Report-ID: 2150510829392606201\\r\\nFrom: noreply-dmarc-support@google.com\\r\\nTo: dmarc@njae.me.uk\\r\\nContent-Type: application/zip; \\r\\n\\tname=\"google.com!njae.me.uk!1458950400!1459036799.zip\"\\r\\nContent-Disposition: attachment; \\r\\n\\tfilename=\"google.com!njae.me.uk!1458950400!1459036799.zip\"\\r\\nContent-Transfer-Encoding: base64\\r\\n\\r\\nUEsDBAoAAAAIADpKe0gTM/X5EAIAAKsGAAAvAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTg5\\r\\nNTA0MDAhMTQ1OTAzNjc5OS54bWzVVU1vnDAQvedXoL0vBrJQqBynp/6C9oy8ZmDdBduyTZL99zVr\\r\\n85FNKkVVpKqnNW9m3swbP1j8+DL00RNow6V42KVxsotAMNlw0T3sfv74vi930SO5wy1Ac6TsTO6i\\r\\nCGtQUtt6AEsbaumEOVTqrhZ0ANJJ2fUQMzlgtIA+BwbKeyKkY+gv+2agmu3NqCa6b9synxdqXqym\\r\\nNZPCUmZrLlpJTtYq8xWhUBqvpYgiKswzaJQdiiIvE8f1tt4TBxm8IVmaJ3malFl1X2VFUmRJitEa\\r\\n9ulOKtSaii6IcdAROi5IesjLKk8OiWvmkTkOopmiVXJffKkqN4qYydBrtqXbdqdYyZ6zS63GY8/N\\r\\nCZZBpNuOIOIXhXiAeDw7Ng/5OG3OfCAaI38IoFHtFZt+PaTcRQjASIVnMwNmRhSzJJ1kTYfrmO+N\\r\\n5BbJpJ6n0/J50W/kqBnUXJEyi9OkitPyELs9rPicyeQoXC+M/GGGQzt4ov3oFtbMgWkL3ChpuHXG\\r\\nDWNvkU3etIPW2cklLOsIetsQWHaykXjT093QLAzzBoTlLXevzVJ2AtqArlsth1c3s8UD0ZtyTEd7\\r\\nqjWYsbcr48204YpZ71bfy0tj/Juyvfng6omGKGrM5Krrw6Jty4k3qj+LfzUXutU0Jc82+YhjsjSL\\r\\niyrO87jI/oFjvL53HOMD/5Fj/vSd+Ay3/D33h5yC0fq/8xtQSwECCgAKAAAACAA6SntIEzP1+RAC\\r\\nAACrBgAALwAAAAAAAAAAAAAAAAAAAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTg5NTA0MDAh\\r\\nMTQ1OTAzNjc5OS54bWxQSwUGAAAAAAEAAQBdAAAAXQIAAAAA\\r\\n'),\n",
248 " b')'])"
249 ]
250 },
251 "execution_count": 12,
252 "metadata": {},
253 "output_type": "execute_result"
254 }
255 ],
256 "source": [
257 "all_resp = mailbox.fetch(nums[0].split()[-1], '(RFC822)')\n",
258 "all_resp"
259 ]
260 },
261 {
262 "cell_type": "code",
263 "execution_count": 13,
264 "metadata": {
265 "collapsed": false
266 },
267 "outputs": [
268 {
269 "name": "stdout",
270 "output_type": "stream",
271 "text": [
272 "Return-Path: <noreply-dmarc-support@google.com>\r\n",
273 "Delivered-To: dmarc@njae.me.uk\r\n",
274 "Received: from localhost (localhost [127.0.0.1])\r\n",
275 "\tby mail.njae.me.uk (Postfix) with ESMTP id 2A065106\r\n",
276 "\tfor <dmarc@njae.me.uk>; Sun, 27 Mar 2016 10:28:09 +0100 (BST)\r\n",
277 "X-Virus-Scanned: Debian amavisd-new at njae.me.uk\r\n",
278 "Authentication-Results: ogedei.njae.me.uk (amavisd-new);\r\n",
279 "\tdkim=pass (2048-bit key) header.d=google.com\r\n",
280 "Received: from mail.njae.me.uk ([127.0.0.1])\r\n",
281 "\tby localhost (ogedei.njae.me.uk [127.0.0.1]) (amavisd-new, port 10024)\r\n",
282 "\twith ESMTP id S06rrC9pLQlu for <dmarc@njae.me.uk>;\r\n",
283 "\tSun, 27 Mar 2016 10:28:07 +0100 (BST)\r\n",
284 "Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=209.85.223.201; helo=mail-io0-f201.google.com; envelope-from=noreply-dmarc-support@google.com; receiver=dmarc@njae.me.uk \r\n",
285 "Authentication-Results: mail.njae.me.uk; dmarc=pass header.from=google.com\r\n",
286 "Authentication-Results: mail.njae.me.uk; dkim=pass\r\n",
287 "\treason=\"2048-bit key; unprotected key\"\r\n",
288 "\theader.d=google.com header.i=@google.com header.b=kRG+/uqj;\r\n",
289 "\tdkim-adsp=pass; dkim-atps=neutral\r\n",
290 "Received: from mail-io0-f201.google.com (mail-io0-f201.google.com [209.85.223.201])\r\n",
291 "\tby mail.njae.me.uk (Postfix) with ESMTPS id 36952EB\r\n",
292 "\tfor <dmarc@njae.me.uk>; Sun, 27 Mar 2016 10:28:06 +0100 (BST)\r\n",
293 "Received: by mail-io0-f201.google.com with SMTP id 124so13927004iov.0\r\n",
294 " for <dmarc@njae.me.uk>; Sun, 27 Mar 2016 02:28:06 -0700 (PDT)\r\n",
295 "DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n",
296 " d=google.com; s=20120113;\r\n",
297 " h=mime-version:message-id:date:subject:from:to:content-disposition\r\n",
298 " :content-transfer-encoding;\r\n",
299 " bh=WebWWyH674VepKwkY7+3OEpaPDkuJsYet/WYzuiqEhc=;\r\n",
300 " b=kRG+/uqjzLNy4IsueOq2bd1CW4i2x4dzf5Dg+soCJzKTycsrUudvIkphybOCPAE4aW\r\n",
301 " 1ffplA6Tt9mxOpAfYppahUPeWFXtCE5AEf3/qorGxcv/yHv8S3TFiUqulTLccOyLbhoG\r\n",
302 " P02OxDg38XWHLob7gOKUsqdCAmPfxqATsvakVN/SJkJswU4Fm8iBBaoca7wgW/A97eJs\r\n",
303 " zKnmyWvpc1juUp5YLYWVGwL9927tbw8bO+0acz53Qgwj+QScqSftMNeLzKS3Ct11RkvX\r\n",
304 " W49XblUJOHS+lbtVF6radeGKbsGp09QClMLAyLKEUeYTTgux/K0CIuB3A+BmQ1O3Souk\r\n",
305 " cN7A==\r\n",
306 "X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n",
307 " d=1e100.net; s=20130820;\r\n",
308 " h=x-gm-message-state:mime-version:message-id:date:subject:from:to\r\n",
309 " :content-disposition:content-transfer-encoding;\r\n",
310 " bh=WebWWyH674VepKwkY7+3OEpaPDkuJsYet/WYzuiqEhc=;\r\n",
311 " b=iy79Cfu0C9JtwPWMHnqS7hbVnFOcPMPttWMomjdh1ekeq+jxAg9335NteUoNg79PTo\r\n",
312 " QSJbg9YAM4bvlFPOcPrSNQN+Q5fdopi1TuDBgHK7L0Rb9Vv8eKVRSG8pyLAw7Izs+y/H\r\n",
313 " 9Rlh8qfOV3Te/pzQb+4eA+SS39D9O8L1Cmg2p19Y+XmNfX8xd/UhIKzXNNSbQODMOwnL\r\n",
314 " xw0wmbMu/3wMgnUgJVfcp7BkZVhJzO7CqNfkGlv4BSpSGEH2+I0AwZFQgLfytwJ4j3nh\r\n",
315 " oH217zO+us6vAE2gV3zneO4X3Pf88J7ma+I7Et6Bl2cM1TunPpisx6aqnzPdIMhJwMDt\r\n",
316 " GM+w==\r\n",
317 "X-Gm-Message-State: AD7BkJIXsS+d+n0kHSQlvoPQuXFYd9jWCwS846F7EdDD9cR1K1RkBPs0SrrYY9ARYXU/K7Bs7gdjAw==\r\n",
318 "MIME-Version: 1.0\r\n",
319 "X-Received: by 10.157.11.13 with SMTP id a13mr14086672ota.35.1459070885519;\r\n",
320 " Sun, 27 Mar 2016 02:28:05 -0700 (PDT)\r\n",
321 "Message-ID: <2150510829392606201@google.com>\r\n",
322 "Date: Sun, 27 Mar 2016 09:28:05 +0000\r\n",
323 "Subject: Report domain: njae.me.uk Submitter: google.com Report-ID: 2150510829392606201\r\n",
324 "From: noreply-dmarc-support@google.com\r\n",
325 "To: dmarc@njae.me.uk\r\n",
326 "Content-Type: application/zip; \r\n",
327 "\tname=\"google.com!njae.me.uk!1458950400!1459036799.zip\"\r\n",
328 "Content-Disposition: attachment; \r\n",
329 "\tfilename=\"google.com!njae.me.uk!1458950400!1459036799.zip\"\r\n",
330 "Content-Transfer-Encoding: base64\r\n",
331 "\r\n",
332 "UEsDBAoAAAAIADpKe0gTM/X5EAIAAKsGAAAvAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTg5\r\n",
333 "NTA0MDAhMTQ1OTAzNjc5OS54bWzVVU1vnDAQvedXoL0vBrJQqBynp/6C9oy8ZmDdBduyTZL99zVr\r\n",
334 "85FNKkVVpKqnNW9m3swbP1j8+DL00RNow6V42KVxsotAMNlw0T3sfv74vi930SO5wy1Ac6TsTO6i\r\n",
335 "CGtQUtt6AEsbaumEOVTqrhZ0ANJJ2fUQMzlgtIA+BwbKeyKkY+gv+2agmu3NqCa6b9synxdqXqym\r\n",
336 "NZPCUmZrLlpJTtYq8xWhUBqvpYgiKswzaJQdiiIvE8f1tt4TBxm8IVmaJ3malFl1X2VFUmRJitEa\r\n",
337 "9ulOKtSaii6IcdAROi5IesjLKk8OiWvmkTkOopmiVXJffKkqN4qYydBrtqXbdqdYyZ6zS63GY8/N\r\n",
338 "CZZBpNuOIOIXhXiAeDw7Ng/5OG3OfCAaI38IoFHtFZt+PaTcRQjASIVnMwNmRhSzJJ1kTYfrmO+N\r\n",
339 "5BbJpJ6n0/J50W/kqBnUXJEyi9OkitPyELs9rPicyeQoXC+M/GGGQzt4ov3oFtbMgWkL3ChpuHXG\r\n",
340 "DWNvkU3etIPW2cklLOsIetsQWHaykXjT093QLAzzBoTlLXevzVJ2AtqArlsth1c3s8UD0ZtyTEd7\r\n",
341 "qjWYsbcr48204YpZ71bfy0tj/Juyvfng6omGKGrM5Krrw6Jty4k3qj+LfzUXutU0Jc82+YhjsjSL\r\n",
342 "iyrO87jI/oFjvL53HOMD/5Fj/vSd+Ay3/D33h5yC0fq/8xtQSwECCgAKAAAACAA6SntIEzP1+RAC\r\n",
343 "AACrBgAALwAAAAAAAAAAAAAAAAAAAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTg5NTA0MDAh\r\n",
344 "MTQ1OTAzNjc5OS54bWxQSwUGAAAAAAEAAQBdAAAAXQIAAAAA\r\n",
345 "\n"
346 ]
347 }
348 ],
349 "source": [
350 "print(all_resp[1][0][1].decode('utf-8'))"
351 ]
352 },
353 {
354 "cell_type": "code",
355 "execution_count": 14,
356 "metadata": {
357 "collapsed": false
358 },
359 "outputs": [
360 {
361 "data": {
362 "text/plain": [
363 "('OK',\n",
364 " [(b'169 (BODY[1] {986}',\n",
365 " b'UEsDBAoAAAAIADpKe0gTM/X5EAIAAKsGAAAvAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTg5\\r\\nNTA0MDAhMTQ1OTAzNjc5OS54bWzVVU1vnDAQvedXoL0vBrJQqBynp/6C9oy8ZmDdBduyTZL99zVr\\r\\n85FNKkVVpKqnNW9m3swbP1j8+DL00RNow6V42KVxsotAMNlw0T3sfv74vi930SO5wy1Ac6TsTO6i\\r\\nCGtQUtt6AEsbaumEOVTqrhZ0ANJJ2fUQMzlgtIA+BwbKeyKkY+gv+2agmu3NqCa6b9synxdqXqym\\r\\nNZPCUmZrLlpJTtYq8xWhUBqvpYgiKswzaJQdiiIvE8f1tt4TBxm8IVmaJ3malFl1X2VFUmRJitEa\\r\\n9ulOKtSaii6IcdAROi5IesjLKk8OiWvmkTkOopmiVXJffKkqN4qYydBrtqXbdqdYyZ6zS63GY8/N\\r\\nCZZBpNuOIOIXhXiAeDw7Ng/5OG3OfCAaI38IoFHtFZt+PaTcRQjASIVnMwNmRhSzJJ1kTYfrmO+N\\r\\n5BbJpJ6n0/J50W/kqBnUXJEyi9OkitPyELs9rPicyeQoXC+M/GGGQzt4ov3oFtbMgWkL3ChpuHXG\\r\\nDWNvkU3etIPW2cklLOsIetsQWHaykXjT093QLAzzBoTlLXevzVJ2AtqArlsth1c3s8UD0ZtyTEd7\\r\\nqjWYsbcr48204YpZ71bfy0tj/Juyvfng6omGKGrM5Krrw6Jty4k3qj+LfzUXutU0Jc82+YhjsjSL\\r\\niyrO87jI/oFjvL53HOMD/5Fj/vSd+Ay3/D33h5yC0fq/8xtQSwECCgAKAAAACAA6SntIEzP1+RAC\\r\\nAACrBgAALwAAAAAAAAAAAAAAAAAAAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTg5NTA0MDAh\\r\\nMTQ1OTAzNjc5OS54bWxQSwUGAAAAAAEAAQBdAAAAXQIAAAAA\\r\\n'),\n",
366 " b')'])"
367 ]
368 },
369 "execution_count": 14,
370 "metadata": {},
371 "output_type": "execute_result"
372 }
373 ],
374 "source": [
375 "all_resp = mailbox.fetch(nums[0].split()[-1], '(BODY[1])')\n",
376 "all_resp"
377 ]
378 },
379 {
380 "cell_type": "code",
381 "execution_count": 15,
382 "metadata": {
383 "collapsed": false
384 },
385 "outputs": [
386 {
387 "data": {
388 "text/plain": [
389 "('OK',\n",
390 " [b'169 (BODY (\"application\" \"zip\" (\"name\" \"google.com!njae.me.uk!1458950400!1459036799.zip\") NIL NIL \"base64\" 986))'])"
391 ]
392 },
393 "execution_count": 15,
394 "metadata": {},
395 "output_type": "execute_result"
396 }
397 ],
398 "source": [
399 "all_resp = mailbox.fetch(nums[0].split()[-1], '(BODY)')\n",
400 "all_resp"
401 ]
402 },
403 {
404 "cell_type": "code",
405 "execution_count": 16,
406 "metadata": {
407 "collapsed": false
408 },
409 "outputs": [
410 {
411 "data": {
412 "text/plain": [
413 "54"
414 ]
415 },
416 "execution_count": 16,
417 "metadata": {},
418 "output_type": "execute_result"
419 }
420 ],
421 "source": [
422 "all_resp[1][0][1]"
423 ]
424 },
425 {
426 "cell_type": "code",
427 "execution_count": 17,
428 "metadata": {
429 "collapsed": false
430 },
431 "outputs": [
432 {
433 "data": {
434 "text/plain": [
435 "int"
436 ]
437 },
438 "execution_count": 17,
439 "metadata": {},
440 "output_type": "execute_result"
441 }
442 ],
443 "source": [
444 "type(all_resp[1][0][1])"
445 ]
446 },
447 {
448 "cell_type": "code",
449 "execution_count": 18,
450 "metadata": {
451 "collapsed": false
452 },
453 "outputs": [
454 {
455 "data": {
456 "text/plain": [
457 "b'Return-Path: <noreply-dmarc-support@google.com>\\r\\nDelivered-To: dmarc@njae.me.uk\\r\\nReceived: from localhost (localhost [127.0.0.1])\\r\\n\\tby mail.njae.me.uk (Postfix) with ESMTP id 2A065106\\r\\n\\tfor <dmarc@njae.me.uk>; Sun, 27 Mar 2016 10:28:09 +0100 (BST)\\r\\nX-Virus-Scanned: Debian amavisd-new at njae.me.uk\\r\\nAuthentication-Results: ogedei.njae.me.uk (amavisd-new);\\r\\n\\tdkim=pass (2048-bit key) header.d=google.com\\r\\nReceived: from mail.njae.me.uk ([127.0.0.1])\\r\\n\\tby localhost (ogedei.njae.me.uk [127.0.0.1]) (amavisd-new, port 10024)\\r\\n\\twith ESMTP id S06rrC9pLQlu for <dmarc@njae.me.uk>;\\r\\n\\tSun, 27 Mar 2016 10:28:07 +0100 (BST)\\r\\nReceived-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=209.85.223.201; helo=mail-io0-f201.google.com; envelope-from=noreply-dmarc-support@google.com; receiver=dmarc@njae.me.uk \\r\\nAuthentication-Results: mail.njae.me.uk; dmarc=pass header.from=google.com\\r\\nAuthentication-Results: mail.njae.me.uk; dkim=pass\\r\\n\\treason=\"2048-bit key; unprotected key\"\\r\\n\\theader.d=google.com header.i=@google.com header.b=kRG+/uqj;\\r\\n\\tdkim-adsp=pass; dkim-atps=neutral\\r\\nReceived: from mail-io0-f201.google.com (mail-io0-f201.google.com [209.85.223.201])\\r\\n\\tby mail.njae.me.uk (Postfix) with ESMTPS id 36952EB\\r\\n\\tfor <dmarc@njae.me.uk>; Sun, 27 Mar 2016 10:28:06 +0100 (BST)\\r\\nReceived: by mail-io0-f201.google.com with SMTP id 124so13927004iov.0\\r\\n for <dmarc@njae.me.uk>; Sun, 27 Mar 2016 02:28:06 -0700 (PDT)\\r\\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\\r\\n d=google.com; s=20120113;\\r\\n h=mime-version:message-id:date:subject:from:to:content-disposition\\r\\n :content-transfer-encoding;\\r\\n bh=WebWWyH674VepKwkY7+3OEpaPDkuJsYet/WYzuiqEhc=;\\r\\n b=kRG+/uqjzLNy4IsueOq2bd1CW4i2x4dzf5Dg+soCJzKTycsrUudvIkphybOCPAE4aW\\r\\n 1ffplA6Tt9mxOpAfYppahUPeWFXtCE5AEf3/qorGxcv/yHv8S3TFiUqulTLccOyLbhoG\\r\\n P02OxDg38XWHLob7gOKUsqdCAmPfxqATsvakVN/SJkJswU4Fm8iBBaoca7wgW/A97eJs\\r\\n zKnmyWvpc1juUp5YLYWVGwL9927tbw8bO+0acz53Qgwj+QScqSftMNeLzKS3Ct11RkvX\\r\\n W49XblUJOHS+lbtVF6radeGKbsGp09QClMLAyLKEUeYTTgux/K0CIuB3A+BmQ1O3Souk\\r\\n cN7A==\\r\\nX-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\\r\\n d=1e100.net; s=20130820;\\r\\n h=x-gm-message-state:mime-version:message-id:date:subject:from:to\\r\\n :content-disposition:content-transfer-encoding;\\r\\n bh=WebWWyH674VepKwkY7+3OEpaPDkuJsYet/WYzuiqEhc=;\\r\\n b=iy79Cfu0C9JtwPWMHnqS7hbVnFOcPMPttWMomjdh1ekeq+jxAg9335NteUoNg79PTo\\r\\n QSJbg9YAM4bvlFPOcPrSNQN+Q5fdopi1TuDBgHK7L0Rb9Vv8eKVRSG8pyLAw7Izs+y/H\\r\\n 9Rlh8qfOV3Te/pzQb+4eA+SS39D9O8L1Cmg2p19Y+XmNfX8xd/UhIKzXNNSbQODMOwnL\\r\\n xw0wmbMu/3wMgnUgJVfcp7BkZVhJzO7CqNfkGlv4BSpSGEH2+I0AwZFQgLfytwJ4j3nh\\r\\n oH217zO+us6vAE2gV3zneO4X3Pf88J7ma+I7Et6Bl2cM1TunPpisx6aqnzPdIMhJwMDt\\r\\n GM+w==\\r\\nX-Gm-Message-State: AD7BkJIXsS+d+n0kHSQlvoPQuXFYd9jWCwS846F7EdDD9cR1K1RkBPs0SrrYY9ARYXU/K7Bs7gdjAw==\\r\\nMIME-Version: 1.0\\r\\nX-Received: by 10.157.11.13 with SMTP id a13mr14086672ota.35.1459070885519;\\r\\n Sun, 27 Mar 2016 02:28:05 -0700 (PDT)\\r\\nMessage-ID: <2150510829392606201@google.com>\\r\\nDate: Sun, 27 Mar 2016 09:28:05 +0000\\r\\nSubject: Report domain: njae.me.uk Submitter: google.com Report-ID: 2150510829392606201\\r\\nFrom: noreply-dmarc-support@google.com\\r\\nTo: dmarc@njae.me.uk\\r\\nContent-Type: application/zip; \\r\\n\\tname=\"google.com!njae.me.uk!1458950400!1459036799.zip\"\\r\\nContent-Disposition: attachment; \\r\\n\\tfilename=\"google.com!njae.me.uk!1458950400!1459036799.zip\"\\r\\nContent-Transfer-Encoding: base64\\r\\n\\r\\nUEsDBAoAAAAIADpKe0gTM/X5EAIAAKsGAAAvAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTg5\\r\\nNTA0MDAhMTQ1OTAzNjc5OS54bWzVVU1vnDAQvedXoL0vBrJQqBynp/6C9oy8ZmDdBduyTZL99zVr\\r\\n85FNKkVVpKqnNW9m3swbP1j8+DL00RNow6V42KVxsotAMNlw0T3sfv74vi930SO5wy1Ac6TsTO6i\\r\\nCGtQUtt6AEsbaumEOVTqrhZ0ANJJ2fUQMzlgtIA+BwbKeyKkY+gv+2agmu3NqCa6b9synxdqXqym\\r\\nNZPCUmZrLlpJTtYq8xWhUBqvpYgiKswzaJQdiiIvE8f1tt4TBxm8IVmaJ3malFl1X2VFUmRJitEa\\r\\n9ulOKtSaii6IcdAROi5IesjLKk8OiWvmkTkOopmiVXJffKkqN4qYydBrtqXbdqdYyZ6zS63GY8/N\\r\\nCZZBpNuOIOIXhXiAeDw7Ng/5OG3OfCAaI38IoFHtFZt+PaTcRQjASIVnMwNmRhSzJJ1kTYfrmO+N\\r\\n5BbJpJ6n0/J50W/kqBnUXJEyi9OkitPyELs9rPicyeQoXC+M/GGGQzt4ov3oFtbMgWkL3ChpuHXG\\r\\nDWNvkU3etIPW2cklLOsIetsQWHaykXjT093QLAzzBoTlLXevzVJ2AtqArlsth1c3s8UD0ZtyTEd7\\r\\nqjWYsbcr48204YpZ71bfy0tj/Juyvfng6omGKGrM5Krrw6Jty4k3qj+LfzUXutU0Jc82+YhjsjSL\\r\\niyrO87jI/oFjvL53HOMD/5Fj/vSd+Ay3/D33h5yC0fq/8xtQSwECCgAKAAAACAA6SntIEzP1+RAC\\r\\nAACrBgAALwAAAAAAAAAAAAAAAAAAAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTg5NTA0MDAh\\r\\nMTQ1OTAzNjc5OS54bWxQSwUGAAAAAAEAAQBdAAAAXQIAAAAA\\r\\n'"
458 ]
459 },
460 "execution_count": 18,
461 "metadata": {},
462 "output_type": "execute_result"
463 }
464 ],
465 "source": [
466 "msg = mailbox.fetch(nums[0].split()[-1], '(RFC822)')[1][0][1]\n",
467 "msg"
468 ]
469 },
470 {
471 "cell_type": "code",
472 "execution_count": 19,
473 "metadata": {
474 "collapsed": false
475 },
476 "outputs": [
477 {
478 "data": {
479 "text/plain": [
480 "<email.message.Message at 0x7f2544346fd0>"
481 ]
482 },
483 "execution_count": 19,
484 "metadata": {},
485 "output_type": "execute_result"
486 }
487 ],
488 "source": [
489 "pmsg = email.parser.BytesParser()\n",
490 "pmsg.parsebytes(msg)"
491 ]
492 },
493 {
494 "cell_type": "code",
495 "execution_count": 20,
496 "metadata": {
497 "collapsed": false
498 },
499 "outputs": [
500 {
501 "data": {
502 "text/plain": [
503 "<email.message.Message at 0x7f2544351160>"
504 ]
505 },
506 "execution_count": 20,
507 "metadata": {},
508 "output_type": "execute_result"
509 }
510 ],
511 "source": [
512 "pmsg = email.message_from_bytes(msg)\n",
513 "pmsg"
514 ]
515 },
516 {
517 "cell_type": "code",
518 "execution_count": 21,
519 "metadata": {
520 "collapsed": false
521 },
522 "outputs": [
523 {
524 "data": {
525 "text/plain": [
526 "'application/zip'"
527 ]
528 },
529 "execution_count": 21,
530 "metadata": {},
531 "output_type": "execute_result"
532 }
533 ],
534 "source": [
535 "pmsg.get_content_type()"
536 ]
537 },
538 {
539 "cell_type": "code",
540 "execution_count": 22,
541 "metadata": {
542 "collapsed": false
543 },
544 "outputs": [
545 {
546 "data": {
547 "text/plain": [
548 "'UEsDBAoAAAAIADpKe0gTM/X5EAIAAKsGAAAvAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTg5\\r\\nNTA0MDAhMTQ1OTAzNjc5OS54bWzVVU1vnDAQvedXoL0vBrJQqBynp/6C9oy8ZmDdBduyTZL99zVr\\r\\n85FNKkVVpKqnNW9m3swbP1j8+DL00RNow6V42KVxsotAMNlw0T3sfv74vi930SO5wy1Ac6TsTO6i\\r\\nCGtQUtt6AEsbaumEOVTqrhZ0ANJJ2fUQMzlgtIA+BwbKeyKkY+gv+2agmu3NqCa6b9synxdqXqym\\r\\nNZPCUmZrLlpJTtYq8xWhUBqvpYgiKswzaJQdiiIvE8f1tt4TBxm8IVmaJ3malFl1X2VFUmRJitEa\\r\\n9ulOKtSaii6IcdAROi5IesjLKk8OiWvmkTkOopmiVXJffKkqN4qYydBrtqXbdqdYyZ6zS63GY8/N\\r\\nCZZBpNuOIOIXhXiAeDw7Ng/5OG3OfCAaI38IoFHtFZt+PaTcRQjASIVnMwNmRhSzJJ1kTYfrmO+N\\r\\n5BbJpJ6n0/J50W/kqBnUXJEyi9OkitPyELs9rPicyeQoXC+M/GGGQzt4ov3oFtbMgWkL3ChpuHXG\\r\\nDWNvkU3etIPW2cklLOsIetsQWHaykXjT093QLAzzBoTlLXevzVJ2AtqArlsth1c3s8UD0ZtyTEd7\\r\\nqjWYsbcr48204YpZ71bfy0tj/Juyvfng6omGKGrM5Krrw6Jty4k3qj+LfzUXutU0Jc82+YhjsjSL\\r\\niyrO87jI/oFjvL53HOMD/5Fj/vSd+Ay3/D33h5yC0fq/8xtQSwECCgAKAAAACAA6SntIEzP1+RAC\\r\\nAACrBgAALwAAAAAAAAAAAAAAAAAAAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTg5NTA0MDAh\\r\\nMTQ1OTAzNjc5OS54bWxQSwUGAAAAAAEAAQBdAAAAXQIAAAAA\\r\\n'"
549 ]
550 },
551 "execution_count": 22,
552 "metadata": {},
553 "output_type": "execute_result"
554 }
555 ],
556 "source": [
557 "pmsg.get_payload()"
558 ]
559 },
560 {
561 "cell_type": "code",
562 "execution_count": 23,
563 "metadata": {
564 "collapsed": false
565 },
566 "outputs": [
567 {
568 "data": {
569 "text/plain": [
570 "b'PK\\x03\\x04\\n\\x00\\x00\\x00\\x08\\x00:J{H\\x133\\xf5\\xf9\\x10\\x02\\x00\\x00\\xab\\x06\\x00\\x00/\\x00\\x00\\x00google.com!njae.me.uk!1458950400!1459036799.xml\\xd5UMo\\x9c0\\x10\\xbd\\xe7W\\xa0\\xbd/\\x06\\xb2P\\xa8\\x1c\\xa7\\xa7\\xfe\\x82\\xf6\\x8c\\xbcf`\\xdd\\x05\\xdb\\xb2M\\x92\\xfd\\xf75k\\xf3\\x91M*EU\\xa4\\xaa\\xa75of\\xde\\xcc\\x1b?X\\xfc\\xf82\\xf4\\xd1\\x13h\\xc3\\xa5x\\xd8\\xa5q\\xb2\\x8b@0\\xd9p\\xd1=\\xec~\\xfe\\xf8\\xbe/w\\xd1#\\xb9\\xc3-@s\\xa4\\xecL\\xee\\xa2\\x08kPR\\xdbz\\x00K\\x1bj\\xe9\\x849T\\xea\\xae\\x16t\\x00\\xd2I\\xd9\\xf5\\x1039`\\xb4\\x80>\\x07\\x06\\xca{\"\\xa4c\\xe8/\\xfbf\\xa0\\x9a\\xed\\xcd\\xa8&\\xbao\\xdb2\\x9f\\x17j^\\xac\\xa65\\x93\\xc2Rfk.ZIN\\xd6*\\xf3\\x15\\xa1P\\x1a\\xaf\\xa5\\x88\"*\\xcc3h\\x94\\x1d\\x8a\"/\\x13\\xc7\\xf5\\xb6\\xde\\x13\\x07\\x19\\xbc!Y\\x9a\\'y\\x9a\\x94Yu_eERdI\\x8a\\xd1\\x1a\\xf6\\xe9N*\\xd4\\x9a\\x8a.\\x88q\\xd0\\x11:.Hz\\xc8\\xcb*O\\x0e\\x89k\\xe6\\x919\\x0e\\xa2\\x99\\xa2Ur_|\\xa9*7\\x8a\\x98\\xc9\\xd0k\\xb6\\xa5\\xdbv\\xa7X\\xc9\\x9e\\xb3K\\xad\\xc6c\\xcf\\xcd\\t\\x96A\\xa4\\xdb\\x8e \\xe2\\x17\\x85x\\x80x<;6\\x0f\\xf98m\\xce| \\x1a#\\x7f\\x08\\xa0Q\\xed\\x15\\x9b~=\\xa4\\xdcE\\x08\\xc0H\\x85g3\\x03fF\\x14\\xb3$\\x9ddM\\x87\\xeb\\x98\\xef\\x8d\\xe4\\x16\\xc9\\xa4\\x9e\\xa7\\xd3\\xf2y\\xd1o\\xe4\\xa8\\x19\\xd4\\\\\\x912\\x8b\\xd3\\xa4\\x8a\\xd3\\xf2\\x10\\xbb=\\xac\\xf8\\x9c\\xc9\\xe4(\\\\/\\x8c\\xfca\\x86C;x\\xa2\\xfd\\xe8\\x16\\xd6\\xcc\\x81i\\x0b\\xdc(i\\xb8u\\xc6\\rco\\x91M\\xde\\xb4\\x83\\xd6\\xd9\\xc9%,\\xeb\\x08z\\xdb\\x10Xv\\xb2\\x91x\\xd3\\xd3\\xdd\\xd0,\\x0c\\xf3\\x06\\x84\\xe5-w\\xaf\\xcdRv\\x02\\xda\\x80\\xae[-\\x87W7\\xb3\\xc5\\x03\\xd1\\x9brLG{\\xaa5\\x98\\xb1\\xb7+\\xe3\\xcd\\xb4\\xe1\\x8aY\\xefV\\xdf\\xcbKc\\xfc\\x9b\\xb2\\xbd\\xf9\\xe0\\xea\\x89\\x86(j\\xcc\\xe4\\xaa\\xeb\\xc3\\xa2m\\xcb\\x897\\xaa?\\x8b\\x7f5\\x17\\xba\\xd54%\\xcf6\\xf9\\x88c\\xb24\\x8b\\x8b*\\xce\\xf3\\xb8\\xc8\\xfe\\x81c\\xbc\\xbew\\x1c\\xe3\\x03\\xff\\x91c\\xfe\\xf4\\x9d\\xf8\\x0c\\xb7\\xfc=\\xf7\\x87\\x9c\\x82\\xd1\\xfa\\xbf\\xf3\\x1bPK\\x01\\x02\\n\\x00\\n\\x00\\x00\\x00\\x08\\x00:J{H\\x133\\xf5\\xf9\\x10\\x02\\x00\\x00\\xab\\x06\\x00\\x00/\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00google.com!njae.me.uk!1458950400!1459036799.xmlPK\\x05\\x06\\x00\\x00\\x00\\x00\\x01\\x00\\x01\\x00]\\x00\\x00\\x00]\\x02\\x00\\x00\\x00\\x00'"
571 ]
572 },
573 "execution_count": 23,
574 "metadata": {},
575 "output_type": "execute_result"
576 }
577 ],
578 "source": [
579 "pmsg.get_payload(decode=True)"
580 ]
581 },
582 {
583 "cell_type": "code",
584 "execution_count": 135,
585 "metadata": {
586 "collapsed": true
587 },
588 "outputs": [],
589 "source": [
590 "# io.BytesIO(pmsg.get_payload(decode=True))\n",
591 "zfp = zipfile.ZipFile(io.BytesIO(pmsg.get_payload(decode=True)))"
592 ]
593 },
594 {
595 "cell_type": "code",
596 "execution_count": 136,
597 "metadata": {
598 "collapsed": false
599 },
600 "outputs": [
601 {
602 "data": {
603 "text/plain": [
604 "'google.com!njae.me.uk!1458950400!1459036799.xml'"
605 ]
606 },
607 "execution_count": 136,
608 "metadata": {},
609 "output_type": "execute_result"
610 }
611 ],
612 "source": [
613 "zfp.infolist()[0].filename"
614 ]
615 },
616 {
617 "cell_type": "code",
618 "execution_count": 24,
619 "metadata": {
620 "collapsed": true
621 },
622 "outputs": [],
623 "source": [
624 "def walk(node, indent=0):\n",
625 " for child in node:\n",
626 " print(' '*indent, child.tag, ':', child.text)\n",
627 " walk(child, indent+2)"
628 ]
629 },
630 {
631 "cell_type": "code",
632 "execution_count": 151,
633 "metadata": {
634 "collapsed": true
635 },
636 "outputs": [],
637 "source": [
638 "zfp.close()"
639 ]
640 },
641 {
642 "cell_type": "code",
643 "execution_count": 25,
644 "metadata": {
645 "collapsed": false
646 },
647 "outputs": [
648 {
649 "name": "stdout",
650 "output_type": "stream",
651 "text": [
652 " report_metadata : \n",
653 " \n",
654 " org_name : google.com\n",
655 " email : noreply-dmarc-support@google.com\n",
656 " extra_contact_info : https://support.google.com/a/answer/2466580\n",
657 " report_id : 2150510829392606201\n",
658 " date_range : \n",
659 " \n",
660 " begin : 1458950400\n",
661 " end : 1459036799\n",
662 " policy_published : \n",
663 " \n",
664 " domain : njae.me.uk\n",
665 " adkim : r\n",
666 " aspf : r\n",
667 " p : none\n",
668 " sp : none\n",
669 " pct : 100\n",
670 " record : \n",
671 " \n",
672 " row : \n",
673 " \n",
674 " source_ip : 82.109.184.9\n",
675 " count : 1\n",
676 " policy_evaluated : \n",
677 " \n",
678 " disposition : none\n",
679 " dkim : fail\n",
680 " spf : fail\n",
681 " identifiers : \n",
682 " \n",
683 " header_from : njae.me.uk\n",
684 " auth_results : \n",
685 " \n",
686 " dkim : \n",
687 " \n",
688 " domain : clublloyds.com\n",
689 " result : pass\n",
690 " spf : \n",
691 " \n",
692 " domain : clublloyds.com\n",
693 " result : pass\n",
694 " record : \n",
695 " \n",
696 " row : \n",
697 " \n",
698 " source_ip : 212.69.55.62\n",
699 " count : 1\n",
700 " policy_evaluated : \n",
701 " \n",
702 " disposition : none\n",
703 " dkim : pass\n",
704 " spf : pass\n",
705 " identifiers : \n",
706 " \n",
707 " header_from : njae.me.uk\n",
708 " auth_results : \n",
709 " \n",
710 " dkim : \n",
711 " \n",
712 " domain : njae.me.uk\n",
713 " result : pass\n",
714 " spf : \n",
715 " \n",
716 " domain : njae.me.uk\n",
717 " result : pass\n"
718 ]
719 }
720 ],
721 "source": [
722 "with zipfile.ZipFile(io.BytesIO(pmsg.get_payload(decode=True))) as zf:\n",
723 " fn = zf.infolist()[0].filename\n",
724 " contents = zf.read(fn).decode('utf-8')\n",
725 " root = xml.etree.ElementTree.fromstring(contents)\n",
726 " walk(root)"
727 ]
728 },
729 {
730 "cell_type": "code",
731 "execution_count": 82,
732 "metadata": {
733 "collapsed": false
734 },
735 "outputs": [
736 {
737 "ename": "RuntimeError",
738 "evalue": "No active exception to reraise",
739 "output_type": "error",
740 "traceback": [
741 "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
742 "\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)",
743 "\u001b[1;32m<ipython-input-82-26814ed17a01>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[1;32m----> 1\u001b[1;33m \u001b[1;32mraise\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m",
744 "\u001b[1;31mRuntimeError\u001b[0m: No active exception to reraise"
745 ]
746 }
747 ],
748 "source": [
749 "raise"
750 ]
751 },
752 {
753 "cell_type": "code",
754 "execution_count": 26,
755 "metadata": {
756 "collapsed": false
757 },
758 "outputs": [
759 {
760 "data": {
761 "text/plain": [
762 "('OK', [b'Close completed.'])"
763 ]
764 },
765 "execution_count": 26,
766 "metadata": {},
767 "output_type": "execute_result"
768 }
769 ],
770 "source": [
771 "mailbox.close()"
772 ]
773 },
774 {
775 "cell_type": "code",
776 "execution_count": 27,
777 "metadata": {
778 "collapsed": false
779 },
780 "outputs": [
781 {
782 "data": {
783 "text/plain": [
784 "('BYE', [b'Logging out'])"
785 ]
786 },
787 "execution_count": 27,
788 "metadata": {},
789 "output_type": "execute_result"
790 }
791 ],
792 "source": [
793 "mailbox.logout()"
794 ]
795 },
796 {
797 "cell_type": "code",
798 "execution_count": null,
799 "metadata": {
800 "collapsed": true
801 },
802 "outputs": [],
803 "source": []
804 }
805 ],
806 "metadata": {
807 "kernelspec": {
808 "display_name": "Python 3",
809 "language": "python",
810 "name": "python3"
811 },
812 "language_info": {
813 "codemirror_mode": {
814 "name": "ipython",
815 "version": 3
816 },
817 "file_extension": ".py",
818 "mimetype": "text/x-python",
819 "name": "python",
820 "nbconvert_exporter": "python",
821 "pygments_lexer": "ipython3",
822 "version": "3.4.3+"
823 }
824 },
825 "nbformat": 4,
826 "nbformat_minor": 0
827 }