11 "import configparser\n",
15 "# import email.parser\n",
19 "import xml.etree.ElementTree"
24 "execution_count": 41,
35 "execution_count": 41,
37 "output_type": "execute_result"
41 "config = configparser.ConfigParser()\n",
42 "config.read('dmarc.ini')"
47 "execution_count": 42,
58 "execution_count": 42,
60 "output_type": "execute_result"
64 "[k for k in config['DEFAULT']]"
69 "execution_count": 43,
77 "['imap', 'database']"
80 "execution_count": 43,
82 "output_type": "execute_result"
91 "execution_count": 44,
102 "execution_count": 44,
104 "output_type": "execute_result"
108 "config['imap']['server']"
113 "execution_count": 45,
119 "mailbox = imaplib.IMAP4(host=config['imap']['server'], \n",
120 " port=config['imap']['port'])"
125 "execution_count": 46,
136 "execution_count": 46,
138 "output_type": "execute_result"
147 "execution_count": 47,
155 "('OK', [b'Logged in'])"
158 "execution_count": 47,
160 "output_type": "execute_result"
164 "mailbox.login(config['imap']['username'], config['imap']['password'])"
169 "execution_count": 48,
180 "execution_count": 48,
182 "output_type": "execute_result"
186 "mailbox.select('INBOX', readonly=True)"
191 "execution_count": 49,
200 " [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 170 171 172 173 174'])"
203 "execution_count": 49,
205 "output_type": "execute_result"
209 "mailbox.search(None, \"ALL\")"
214 "execution_count": 50,
222 "('OK', [b'164 165 166 167 168 169 170 171 172 173 174'])"
225 "execution_count": 50,
227 "output_type": "execute_result"
231 "resp, nums = mailbox.search(None, \"SINCE 23-Mar-2016\")\n",
237 "execution_count": 51,
258 "execution_count": 51,
260 "output_type": "execute_result"
269 "execution_count": 52,
278 " [(b'174 (RFC822 {4399}',\n",
279 " 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 38B4132B\\r\\n\\tfor <dmarc@njae.me.uk>; Tue, 29 Mar 2016 10:19:13 +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 SnLdON04KYCo for <dmarc@njae.me.uk>;\\r\\n\\tTue, 29 Mar 2016 10:19:10 +0100 (BST)\\r\\nReceived-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=209.85.213.73; helo=mail-vk0-f73.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=iAXipzAt;\\r\\n\\tdkim-adsp=pass; dkim-atps=neutral\\r\\nReceived: from mail-vk0-f73.google.com (mail-vk0-f73.google.com [209.85.213.73])\\r\\n\\tby mail.njae.me.uk (Postfix) with ESMTPS id 179E41E5\\r\\n\\tfor <dmarc@njae.me.uk>; Tue, 29 Mar 2016 10:19:09 +0100 (BST)\\r\\nReceived: by mail-vk0-f73.google.com with SMTP id z68so702703vkg.0\\r\\n for <dmarc@njae.me.uk>; Tue, 29 Mar 2016 02:19:09 -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=LH2uamJGGOiwcPQ0Y/w6LUkyxCGuLyHT3APu5+Zs63I=;\\r\\n b=iAXipzAtsCytlhTKIQ8CQy7SgB9q5HZ71k1QE93vubKwtldTgCdIZc3KiZLhJA0TLw\\r\\n 5YEVf+rfppwog3YJhffpeZgb+O8oaCxAga47sMGxSq3He0bP8TpHtVo+EaJyRaFVbOei\\r\\n X2f4/WuC1gF5eDg/JYhJgIkq0owFlhl10CgLnFRZCEWIFNuuPKLmhWrIceqZY5Cay90X\\r\\n CCmEBsFYY+cvfnbtzhJeSLG8w9vHbyCZVs8cY5XFOfaRmcWmKH/Yq/fpcAZ9BaMYme2U\\r\\n YW1lSKKFlFf5aJtaO2YGQMPyEZqLRsDjFo+wldyTMwaptG5hyYMH1MRTrRuCbUpsIV8t\\r\\n mHag==\\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=LH2uamJGGOiwcPQ0Y/w6LUkyxCGuLyHT3APu5+Zs63I=;\\r\\n b=V5D9qH2AnRN1Yl9Q/ZaOCk7+NDT8Uk2kJRGxFu8goO+F1oJfRVe5zyp9Ig2DTAwUaj\\r\\n 8odegu+0RiGm3hrRYlbcTw3Mdsa3D2Gf2GWxAfEWTsheH2D/8cv6W8XqsFUhNl4w7j/f\\r\\n 9m4dQ6bBCqX2sBoD/vu+3dvtiL1u7qe4QiBFYlZy/75hbPJzaPkaGbXJyFl9jJLBmmR8\\r\\n DTMIwevCzUgHpoh0ITYL7lAW640jKV9ouNcXSo+pfsarztbhC8bBG+5Lh9SigI1EqgFB\\r\\n cUgZ+Oxuzkq93CcYHWTYYr1tsO7Y55w/+5DsAhiqjgPCkFIGrbLLguUM2+9V6yYex1v2\\r\\n JgXw==\\r\\nX-Gm-Message-State: AD7BkJLvHE6gfQN3L4TDuBK40mhasmyPR5+mR27t8PtP3Ym5H6IsuU0eB5uXi4w8dar7jVodeLR/5A==\\r\\nMIME-Version: 1.0\\r\\nX-Received: by 10.129.87.74 with SMTP id l71mr605278ywb.38.1459243148486; Tue,\\r\\n 29 Mar 2016 02:19:08 -0700 (PDT)\\r\\nMessage-ID: <15410706527896810898@google.com>\\r\\nDate: Tue, 29 Mar 2016 09:19:08 +0000\\r\\nSubject: Report domain: njae.me.uk Submitter: google.com Report-ID: 15410706527896810898\\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!1459123200!1459209599.zip\"\\r\\nContent-Disposition: attachment; \\r\\n\\tfilename=\"google.com!njae.me.uk!1459123200!1459209599.zip\"\\r\\nContent-Transfer-Encoding: base64\\r\\n\\r\\nUEsDBAoAAAAIAAlJfUgBY8K+2QEAAHoEAAAvAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTkx\\r\\nMjMyMDAhMTQ1OTIwOTU5OS54bWytVE2TnCAQve+vsOY+ou7oaoplc8ovSM4WA61DRoEC3I9/Hxzw\\r\\nY2dTlUtO4uvu1/1eo/jlfRySVzBWKPl8yNPskIBkigvZPx9+/fxxrA/JC3nAHQA/U3YlD0mCDWhl\\r\\nXDuCo5w6OmMeVaZvJR2B9Er1A6RMjRitYMiBkYqBSOUZho8jH6lhRzvpme77vizkxZp3Z2jLlHSU\\r\\nuVbITpGLc9p+QyiWplspoohK+wYGFaeqKuvMc32tD8RRhuAkL0959pRVZfFUN1WdZ3VTY7TFQ77X\\r\\nCq2hso9qPHSGXkiSn8omLx6LzHcLyBIHyW/RImvKpvGzyIUMfWZbu+1NxVoNgn20ejoPwl5gHUR5\\r\\neySRvymkI6TT1bMFKMQpv4qRGIzCIYJWdzdsfgZI+01IwEjHd7sAdkE0cySfZc2H25h/G8k7yZRZ\\r\\npjPqbdVv1WQYtEKTIi/SqknLMq0K32DFl0ymJunII0bhsMCxHbzSYfKG8SUwuyCsVlY4f3Pj2Htk\\r\\nlzd7oKm1PmG1I+rtYmD1ZCfxrqff0CIMCw7SiU7472YtuwDlYNrOqPHTZvZ4JPpSjunkLq0BOw1u\\r\\nY7yb9h9bj1d6poii4suqa8+Hd4r/B/d2qdC9ljk5XA+Mtt/IH1BLAQIKAAoAAAAIAAlJfUgBY8K+\\r\\n2QEAAHoEAAAvAAAAAAAAAAAAAAAAAAAAAABnb29nbGUuY29tIW5qYWUubWUudWshMTQ1OTEyMzIw\\r\\nMCExNDU5MjA5NTk5LnhtbFBLBQYAAAAAAQABAF0AAAAmAgAAAAA=\\r\\n'),\n",
283 "execution_count": 52,
285 "output_type": "execute_result"
289 "all_resp = mailbox.fetch(nums[0].split()[-1], '(RFC822)')\n",
295 "execution_count": 53,
302 "output_type": "stream",
304 "Return-Path: <noreply-dmarc-support@google.com>\r\n",
305 "Delivered-To: dmarc@njae.me.uk\r\n",
306 "Received: from localhost (localhost [127.0.0.1])\r\n",
307 "\tby mail.njae.me.uk (Postfix) with ESMTP id 38B4132B\r\n",
308 "\tfor <dmarc@njae.me.uk>; Tue, 29 Mar 2016 10:19:13 +0100 (BST)\r\n",
309 "X-Virus-Scanned: Debian amavisd-new at njae.me.uk\r\n",
310 "Authentication-Results: ogedei.njae.me.uk (amavisd-new);\r\n",
311 "\tdkim=pass (2048-bit key) header.d=google.com\r\n",
312 "Received: from mail.njae.me.uk ([127.0.0.1])\r\n",
313 "\tby localhost (ogedei.njae.me.uk [127.0.0.1]) (amavisd-new, port 10024)\r\n",
314 "\twith ESMTP id SnLdON04KYCo for <dmarc@njae.me.uk>;\r\n",
315 "\tTue, 29 Mar 2016 10:19:10 +0100 (BST)\r\n",
316 "Received-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=209.85.213.73; helo=mail-vk0-f73.google.com; envelope-from=noreply-dmarc-support@google.com; receiver=dmarc@njae.me.uk \r\n",
317 "Authentication-Results: mail.njae.me.uk; dmarc=pass header.from=google.com\r\n",
318 "Authentication-Results: mail.njae.me.uk; dkim=pass\r\n",
319 "\treason=\"2048-bit key; unprotected key\"\r\n",
320 "\theader.d=google.com header.i=@google.com header.b=iAXipzAt;\r\n",
321 "\tdkim-adsp=pass; dkim-atps=neutral\r\n",
322 "Received: from mail-vk0-f73.google.com (mail-vk0-f73.google.com [209.85.213.73])\r\n",
323 "\tby mail.njae.me.uk (Postfix) with ESMTPS id 179E41E5\r\n",
324 "\tfor <dmarc@njae.me.uk>; Tue, 29 Mar 2016 10:19:09 +0100 (BST)\r\n",
325 "Received: by mail-vk0-f73.google.com with SMTP id z68so702703vkg.0\r\n",
326 " for <dmarc@njae.me.uk>; Tue, 29 Mar 2016 02:19:09 -0700 (PDT)\r\n",
327 "DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n",
328 " d=google.com; s=20120113;\r\n",
329 " h=mime-version:message-id:date:subject:from:to:content-disposition\r\n",
330 " :content-transfer-encoding;\r\n",
331 " bh=LH2uamJGGOiwcPQ0Y/w6LUkyxCGuLyHT3APu5+Zs63I=;\r\n",
332 " b=iAXipzAtsCytlhTKIQ8CQy7SgB9q5HZ71k1QE93vubKwtldTgCdIZc3KiZLhJA0TLw\r\n",
333 " 5YEVf+rfppwog3YJhffpeZgb+O8oaCxAga47sMGxSq3He0bP8TpHtVo+EaJyRaFVbOei\r\n",
334 " X2f4/WuC1gF5eDg/JYhJgIkq0owFlhl10CgLnFRZCEWIFNuuPKLmhWrIceqZY5Cay90X\r\n",
335 " CCmEBsFYY+cvfnbtzhJeSLG8w9vHbyCZVs8cY5XFOfaRmcWmKH/Yq/fpcAZ9BaMYme2U\r\n",
336 " YW1lSKKFlFf5aJtaO2YGQMPyEZqLRsDjFo+wldyTMwaptG5hyYMH1MRTrRuCbUpsIV8t\r\n",
338 "X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\r\n",
339 " d=1e100.net; s=20130820;\r\n",
340 " h=x-gm-message-state:mime-version:message-id:date:subject:from:to\r\n",
341 " :content-disposition:content-transfer-encoding;\r\n",
342 " bh=LH2uamJGGOiwcPQ0Y/w6LUkyxCGuLyHT3APu5+Zs63I=;\r\n",
343 " b=V5D9qH2AnRN1Yl9Q/ZaOCk7+NDT8Uk2kJRGxFu8goO+F1oJfRVe5zyp9Ig2DTAwUaj\r\n",
344 " 8odegu+0RiGm3hrRYlbcTw3Mdsa3D2Gf2GWxAfEWTsheH2D/8cv6W8XqsFUhNl4w7j/f\r\n",
345 " 9m4dQ6bBCqX2sBoD/vu+3dvtiL1u7qe4QiBFYlZy/75hbPJzaPkaGbXJyFl9jJLBmmR8\r\n",
346 " DTMIwevCzUgHpoh0ITYL7lAW640jKV9ouNcXSo+pfsarztbhC8bBG+5Lh9SigI1EqgFB\r\n",
347 " cUgZ+Oxuzkq93CcYHWTYYr1tsO7Y55w/+5DsAhiqjgPCkFIGrbLLguUM2+9V6yYex1v2\r\n",
349 "X-Gm-Message-State: AD7BkJLvHE6gfQN3L4TDuBK40mhasmyPR5+mR27t8PtP3Ym5H6IsuU0eB5uXi4w8dar7jVodeLR/5A==\r\n",
350 "MIME-Version: 1.0\r\n",
351 "X-Received: by 10.129.87.74 with SMTP id l71mr605278ywb.38.1459243148486; Tue,\r\n",
352 " 29 Mar 2016 02:19:08 -0700 (PDT)\r\n",
353 "Message-ID: <15410706527896810898@google.com>\r\n",
354 "Date: Tue, 29 Mar 2016 09:19:08 +0000\r\n",
355 "Subject: Report domain: njae.me.uk Submitter: google.com Report-ID: 15410706527896810898\r\n",
356 "From: noreply-dmarc-support@google.com\r\n",
357 "To: dmarc@njae.me.uk\r\n",
358 "Content-Type: application/zip; \r\n",
359 "\tname=\"google.com!njae.me.uk!1459123200!1459209599.zip\"\r\n",
360 "Content-Disposition: attachment; \r\n",
361 "\tfilename=\"google.com!njae.me.uk!1459123200!1459209599.zip\"\r\n",
362 "Content-Transfer-Encoding: base64\r\n",
364 "UEsDBAoAAAAIAAlJfUgBY8K+2QEAAHoEAAAvAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTkx\r\n",
365 "MjMyMDAhMTQ1OTIwOTU5OS54bWytVE2TnCAQve+vsOY+ou7oaoplc8ovSM4WA61DRoEC3I9/Hxzw\r\n",
366 "Y2dTlUtO4uvu1/1eo/jlfRySVzBWKPl8yNPskIBkigvZPx9+/fxxrA/JC3nAHQA/U3YlD0mCDWhl\r\n",
367 "XDuCo5w6OmMeVaZvJR2B9Er1A6RMjRitYMiBkYqBSOUZho8jH6lhRzvpme77vizkxZp3Z2jLlHSU\r\n",
368 "uVbITpGLc9p+QyiWplspoohK+wYGFaeqKuvMc32tD8RRhuAkL0959pRVZfFUN1WdZ3VTY7TFQ77X\r\n",
369 "Cq2hso9qPHSGXkiSn8omLx6LzHcLyBIHyW/RImvKpvGzyIUMfWZbu+1NxVoNgn20ejoPwl5gHUR5\r\n",
370 "eySRvymkI6TT1bMFKMQpv4qRGIzCIYJWdzdsfgZI+01IwEjHd7sAdkE0cySfZc2H25h/G8k7yZRZ\r\n",
371 "pjPqbdVv1WQYtEKTIi/SqknLMq0K32DFl0ymJunII0bhsMCxHbzSYfKG8SUwuyCsVlY4f3Pj2Htk\r\n",
372 "lzd7oKm1PmG1I+rtYmD1ZCfxrqff0CIMCw7SiU7472YtuwDlYNrOqPHTZvZ4JPpSjunkLq0BOw1u\r\n",
373 "Y7yb9h9bj1d6poii4suqa8+Hd4r/B/d2qdC9ljk5XA+Mtt/IH1BLAQIKAAoAAAAIAAlJfUgBY8K+\r\n",
374 "2QEAAHoEAAAvAAAAAAAAAAAAAAAAAAAAAABnb29nbGUuY29tIW5qYWUubWUudWshMTQ1OTEyMzIw\r\n",
375 "MCExNDU5MjA5NTk5LnhtbFBLBQYAAAAAAQABAF0AAAAmAgAAAAA=\r\n",
381 "print(all_resp[1][0][1].decode('utf-8'))"
386 "execution_count": 54,
395 " [(b'174 (BODY[1] {912}',\n",
396 " b'UEsDBAoAAAAIAAlJfUgBY8K+2QEAAHoEAAAvAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTkx\\r\\nMjMyMDAhMTQ1OTIwOTU5OS54bWytVE2TnCAQve+vsOY+ou7oaoplc8ovSM4WA61DRoEC3I9/Hxzw\\r\\nY2dTlUtO4uvu1/1eo/jlfRySVzBWKPl8yNPskIBkigvZPx9+/fxxrA/JC3nAHQA/U3YlD0mCDWhl\\r\\nXDuCo5w6OmMeVaZvJR2B9Er1A6RMjRitYMiBkYqBSOUZho8jH6lhRzvpme77vizkxZp3Z2jLlHSU\\r\\nuVbITpGLc9p+QyiWplspoohK+wYGFaeqKuvMc32tD8RRhuAkL0959pRVZfFUN1WdZ3VTY7TFQ77X\\r\\nCq2hso9qPHSGXkiSn8omLx6LzHcLyBIHyW/RImvKpvGzyIUMfWZbu+1NxVoNgn20ejoPwl5gHUR5\\r\\neySRvymkI6TT1bMFKMQpv4qRGIzCIYJWdzdsfgZI+01IwEjHd7sAdkE0cySfZc2H25h/G8k7yZRZ\\r\\npjPqbdVv1WQYtEKTIi/SqknLMq0K32DFl0ymJunII0bhsMCxHbzSYfKG8SUwuyCsVlY4f3Pj2Htk\\r\\nlzd7oKm1PmG1I+rtYmD1ZCfxrqff0CIMCw7SiU7472YtuwDlYNrOqPHTZvZ4JPpSjunkLq0BOw1u\\r\\nY7yb9h9bj1d6poii4suqa8+Hd4r/B/d2qdC9ljk5XA+Mtt/IH1BLAQIKAAoAAAAIAAlJfUgBY8K+\\r\\n2QEAAHoEAAAvAAAAAAAAAAAAAAAAAAAAAABnb29nbGUuY29tIW5qYWUubWUudWshMTQ1OTEyMzIw\\r\\nMCExNDU5MjA5NTk5LnhtbFBLBQYAAAAAAQABAF0AAAAmAgAAAAA=\\r\\n'),\n",
400 "execution_count": 54,
402 "output_type": "execute_result"
406 "all_resp = mailbox.fetch(nums[0].split()[-1], '(BODY[1])')\n",
412 "execution_count": 55,
421 " [b'174 (BODY (\"application\" \"zip\" (\"name\" \"google.com!njae.me.uk!1459123200!1459209599.zip\") NIL NIL \"base64\" 912))'])"
424 "execution_count": 55,
426 "output_type": "execute_result"
430 "all_resp = mailbox.fetch(nums[0].split()[-1], '(BODY)')\n",
436 "execution_count": 56,
447 "execution_count": 56,
449 "output_type": "execute_result"
458 "execution_count": 57,
469 "execution_count": 57,
471 "output_type": "execute_result"
475 "type(all_resp[1][0][1])"
480 "execution_count": 80,
488 "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 38B4132B\\r\\n\\tfor <dmarc@njae.me.uk>; Tue, 29 Mar 2016 10:19:13 +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 SnLdON04KYCo for <dmarc@njae.me.uk>;\\r\\n\\tTue, 29 Mar 2016 10:19:10 +0100 (BST)\\r\\nReceived-SPF: Pass (sender SPF authorized) identity=mailfrom; client-ip=209.85.213.73; helo=mail-vk0-f73.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=iAXipzAt;\\r\\n\\tdkim-adsp=pass; dkim-atps=neutral\\r\\nReceived: from mail-vk0-f73.google.com (mail-vk0-f73.google.com [209.85.213.73])\\r\\n\\tby mail.njae.me.uk (Postfix) with ESMTPS id 179E41E5\\r\\n\\tfor <dmarc@njae.me.uk>; Tue, 29 Mar 2016 10:19:09 +0100 (BST)\\r\\nReceived: by mail-vk0-f73.google.com with SMTP id z68so702703vkg.0\\r\\n for <dmarc@njae.me.uk>; Tue, 29 Mar 2016 02:19:09 -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=LH2uamJGGOiwcPQ0Y/w6LUkyxCGuLyHT3APu5+Zs63I=;\\r\\n b=iAXipzAtsCytlhTKIQ8CQy7SgB9q5HZ71k1QE93vubKwtldTgCdIZc3KiZLhJA0TLw\\r\\n 5YEVf+rfppwog3YJhffpeZgb+O8oaCxAga47sMGxSq3He0bP8TpHtVo+EaJyRaFVbOei\\r\\n X2f4/WuC1gF5eDg/JYhJgIkq0owFlhl10CgLnFRZCEWIFNuuPKLmhWrIceqZY5Cay90X\\r\\n CCmEBsFYY+cvfnbtzhJeSLG8w9vHbyCZVs8cY5XFOfaRmcWmKH/Yq/fpcAZ9BaMYme2U\\r\\n YW1lSKKFlFf5aJtaO2YGQMPyEZqLRsDjFo+wldyTMwaptG5hyYMH1MRTrRuCbUpsIV8t\\r\\n mHag==\\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=LH2uamJGGOiwcPQ0Y/w6LUkyxCGuLyHT3APu5+Zs63I=;\\r\\n b=V5D9qH2AnRN1Yl9Q/ZaOCk7+NDT8Uk2kJRGxFu8goO+F1oJfRVe5zyp9Ig2DTAwUaj\\r\\n 8odegu+0RiGm3hrRYlbcTw3Mdsa3D2Gf2GWxAfEWTsheH2D/8cv6W8XqsFUhNl4w7j/f\\r\\n 9m4dQ6bBCqX2sBoD/vu+3dvtiL1u7qe4QiBFYlZy/75hbPJzaPkaGbXJyFl9jJLBmmR8\\r\\n DTMIwevCzUgHpoh0ITYL7lAW640jKV9ouNcXSo+pfsarztbhC8bBG+5Lh9SigI1EqgFB\\r\\n cUgZ+Oxuzkq93CcYHWTYYr1tsO7Y55w/+5DsAhiqjgPCkFIGrbLLguUM2+9V6yYex1v2\\r\\n JgXw==\\r\\nX-Gm-Message-State: AD7BkJLvHE6gfQN3L4TDuBK40mhasmyPR5+mR27t8PtP3Ym5H6IsuU0eB5uXi4w8dar7jVodeLR/5A==\\r\\nMIME-Version: 1.0\\r\\nX-Received: by 10.129.87.74 with SMTP id l71mr605278ywb.38.1459243148486; Tue,\\r\\n 29 Mar 2016 02:19:08 -0700 (PDT)\\r\\nMessage-ID: <15410706527896810898@google.com>\\r\\nDate: Tue, 29 Mar 2016 09:19:08 +0000\\r\\nSubject: Report domain: njae.me.uk Submitter: google.com Report-ID: 15410706527896810898\\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!1459123200!1459209599.zip\"\\r\\nContent-Disposition: attachment; \\r\\n\\tfilename=\"google.com!njae.me.uk!1459123200!1459209599.zip\"\\r\\nContent-Transfer-Encoding: base64\\r\\n\\r\\nUEsDBAoAAAAIAAlJfUgBY8K+2QEAAHoEAAAvAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTkx\\r\\nMjMyMDAhMTQ1OTIwOTU5OS54bWytVE2TnCAQve+vsOY+ou7oaoplc8ovSM4WA61DRoEC3I9/Hxzw\\r\\nY2dTlUtO4uvu1/1eo/jlfRySVzBWKPl8yNPskIBkigvZPx9+/fxxrA/JC3nAHQA/U3YlD0mCDWhl\\r\\nXDuCo5w6OmMeVaZvJR2B9Er1A6RMjRitYMiBkYqBSOUZho8jH6lhRzvpme77vizkxZp3Z2jLlHSU\\r\\nuVbITpGLc9p+QyiWplspoohK+wYGFaeqKuvMc32tD8RRhuAkL0959pRVZfFUN1WdZ3VTY7TFQ77X\\r\\nCq2hso9qPHSGXkiSn8omLx6LzHcLyBIHyW/RImvKpvGzyIUMfWZbu+1NxVoNgn20ejoPwl5gHUR5\\r\\neySRvymkI6TT1bMFKMQpv4qRGIzCIYJWdzdsfgZI+01IwEjHd7sAdkE0cySfZc2H25h/G8k7yZRZ\\r\\npjPqbdVv1WQYtEKTIi/SqknLMq0K32DFl0ymJunII0bhsMCxHbzSYfKG8SUwuyCsVlY4f3Pj2Htk\\r\\nlzd7oKm1PmG1I+rtYmD1ZCfxrqff0CIMCw7SiU7472YtuwDlYNrOqPHTZvZ4JPpSjunkLq0BOw1u\\r\\nY7yb9h9bj1d6poii4suqa8+Hd4r/B/d2qdC9ljk5XA+Mtt/IH1BLAQIKAAoAAAAIAAlJfUgBY8K+\\r\\n2QEAAHoEAAAvAAAAAAAAAAAAAAAAAAAAAABnb29nbGUuY29tIW5qYWUubWUudWshMTQ1OTEyMzIw\\r\\nMCExNDU5MjA5NTk5LnhtbFBLBQYAAAAAAQABAF0AAAAmAgAAAAA=\\r\\n'"
491 "execution_count": 80,
493 "output_type": "execute_result"
497 "msg = mailbox.fetch(nums[0].split()[-1], '(RFC822)')[1][0][1]\n",
503 "execution_count": 81,
511 "<email.message.Message at 0x7f6538441ef0>"
514 "execution_count": 81,
516 "output_type": "execute_result"
520 "pmsg = email.parser.BytesParser()\n",
521 "pmsg.parsebytes(msg)"
526 "execution_count": 82,
534 "<email.message.Message at 0x7f65381a7b38>"
537 "execution_count": 82,
539 "output_type": "execute_result"
543 "pmsg = email.message_from_bytes(msg)\n",
549 "execution_count": 87,
560 "execution_count": 87,
562 "output_type": "execute_result"
566 "pmsg.is_multipart()"
571 "execution_count": 85,
582 "execution_count": 85,
584 "output_type": "execute_result"
588 "pmsg.get_content_type()"
593 "execution_count": 86,
601 "'UEsDBAoAAAAIAAlJfUgBY8K+2QEAAHoEAAAvAAAAZ29vZ2xlLmNvbSFuamFlLm1lLnVrITE0NTkx\\r\\nMjMyMDAhMTQ1OTIwOTU5OS54bWytVE2TnCAQve+vsOY+ou7oaoplc8ovSM4WA61DRoEC3I9/Hxzw\\r\\nY2dTlUtO4uvu1/1eo/jlfRySVzBWKPl8yNPskIBkigvZPx9+/fxxrA/JC3nAHQA/U3YlD0mCDWhl\\r\\nXDuCo5w6OmMeVaZvJR2B9Er1A6RMjRitYMiBkYqBSOUZho8jH6lhRzvpme77vizkxZp3Z2jLlHSU\\r\\nuVbITpGLc9p+QyiWplspoohK+wYGFaeqKuvMc32tD8RRhuAkL0959pRVZfFUN1WdZ3VTY7TFQ77X\\r\\nCq2hso9qPHSGXkiSn8omLx6LzHcLyBIHyW/RImvKpvGzyIUMfWZbu+1NxVoNgn20ejoPwl5gHUR5\\r\\neySRvymkI6TT1bMFKMQpv4qRGIzCIYJWdzdsfgZI+01IwEjHd7sAdkE0cySfZc2H25h/G8k7yZRZ\\r\\npjPqbdVv1WQYtEKTIi/SqknLMq0K32DFl0ymJunII0bhsMCxHbzSYfKG8SUwuyCsVlY4f3Pj2Htk\\r\\nlzd7oKm1PmG1I+rtYmD1ZCfxrqff0CIMCw7SiU7472YtuwDlYNrOqPHTZvZ4JPpSjunkLq0BOw1u\\r\\nY7yb9h9bj1d6poii4suqa8+Hd4r/B/d2qdC9ljk5XA+Mtt/IH1BLAQIKAAoAAAAIAAlJfUgBY8K+\\r\\n2QEAAHoEAAAvAAAAAAAAAAAAAAAAAAAAAABnb29nbGUuY29tIW5qYWUubWUudWshMTQ1OTEyMzIw\\r\\nMCExNDU5MjA5NTk5LnhtbFBLBQYAAAAAAQABAF0AAAAmAgAAAAA=\\r\\n'"
604 "execution_count": 86,
606 "output_type": "execute_result"
615 "execution_count": 63,
623 "b'PK\\x03\\x04\\n\\x00\\x00\\x00\\x08\\x00\\tI}H\\x01c\\xc2\\xbe\\xd9\\x01\\x00\\x00z\\x04\\x00\\x00/\\x00\\x00\\x00google.com!njae.me.uk!1459123200!1459209599.xml\\xadTM\\x93\\x9c \\x10\\xbd\\xef\\xaf\\xb0\\xe6>\\xa2\\xee\\xe8j\\x8aes\\xca/H\\xce\\x16\\x03\\xadCF\\x81\\x02\\xdc\\x8f\\x7f\\x1f\\x1c\\xf0cgS\\x95KN\\xe2\\xeb\\xee\\xd7\\xfd^\\xa3\\xf8\\xe5}\\x1c\\x92W0V(\\xf9|\\xc8\\xd3\\xec\\x90\\x80d\\x8a\\x0b\\xd9?\\x1f~\\xfd\\xfcq\\xac\\x0f\\xc9\\x0by\\xc0\\x1d\\x00?Sv%\\x0fI\\x82\\rhe\\\\;\\x82\\xa3\\x9c::c\\x1eU\\xa6o%\\x1d\\x81\\xf4J\\xf5\\x03\\xa4L\\x8d\\x18\\xad`\\xc8\\x81\\x91\\x8a\\x81H\\xe5\\x19\\x86\\x8f#\\x1f\\xa9aG;\\xe9\\x99\\xee\\xfb\\xbe,\\xe4\\xc5\\x9awgh\\xcb\\x94t\\x94\\xb9V\\xc8N\\x91\\x8bs\\xda~C(\\x96\\xa6[)\\xa2\\x88J\\xfb\\x06\\x06\\x15\\xa7\\xaa*\\xeb\\xccs}\\xad\\x0f\\xc4Q\\x86\\xe0$/Oy\\xf6\\x94Ue\\xf1T7U\\x9dguSc\\xb4\\xc5C\\xbe\\xd7\\n\\xad\\xa1\\xb2\\x8fj<t\\x86^H\\x92\\x9f\\xca&/\\x1e\\x8b\\xccw\\x0b\\xc8\\x12\\x07\\xc9o\\xd1\"k\\xca\\xa6\\xf1\\xb3\\xc8\\x85\\x0c}f[\\xbb\\xedM\\xc5Z\\r\\x82}\\xb4z:\\x0f\\xc2^`\\x1dDy{$\\x91\\xbf)\\xa4#\\xa4\\xd3\\xd5\\xb3\\x05(\\xc4)\\xbf\\x8a\\x91\\x18\\x8c\\xc2!\\x82Vw7l~\\x06H\\xfbMH\\xc0H\\xc7w\\xbb\\x00vA4s$\\x9fe\\xcd\\x87\\xdb\\x98\\x7f\\x1b\\xc9;\\xc9\\x94Y\\xa63\\xeam\\xd5o\\xd5d\\x18\\xb4B\\x93\"/\\xd2\\xaaI\\xcb2\\xad\\n\\xdf`\\xc5\\x97L\\xa6&\\xe9\\xc8#F\\xe1\\xb0\\xc0\\xb1\\x1d\\xbc\\xd2a\\xf2\\x86\\xf1%0\\xbb \\xacVV8\\x7fs\\xe3\\xd8{d\\x977{\\xa0\\xa9\\xb5>a\\xb5#\\xea\\xedb`\\xf5d\\'\\xf1\\xae\\xa7\\xdf\\xd0\"\\x0c\\x0b\\x0e\\xd2\\x89N\\xf8\\xeff-\\xbb\\x00\\xe5`\\xda\\xce\\xa8\\xf1\\xd3f\\xf6x$\\xfaR\\x8e\\xe9\\xe4.\\xad\\x01;\\rnc\\xbc\\x9b\\xf6\\x1f[\\x8fWz\\xa6\\x88\\xa2\\xe2\\xcb\\xaak\\xcf\\x87w\\x8a\\xff\\x07\\xf7v\\xa9\\xd0\\xbd\\x9699\\\\\\x0f\\x8c\\xb6\\xdf\\xc8\\x1fPK\\x01\\x02\\n\\x00\\n\\x00\\x00\\x00\\x08\\x00\\tI}H\\x01c\\xc2\\xbe\\xd9\\x01\\x00\\x00z\\x04\\x00\\x00/\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00google.com!njae.me.uk!1459123200!1459209599.xmlPK\\x05\\x06\\x00\\x00\\x00\\x00\\x01\\x00\\x01\\x00]\\x00\\x00\\x00&\\x02\\x00\\x00\\x00\\x00'"
626 "execution_count": 63,
628 "output_type": "execute_result"
632 "pmsg.get_payload(decode=True)"
637 "execution_count": 64,
643 "# io.BytesIO(pmsg.get_payload(decode=True))\n",
644 "zfp = zipfile.ZipFile(io.BytesIO(pmsg.get_payload(decode=True)))"
649 "execution_count": 65,
657 "'google.com!njae.me.uk!1459123200!1459209599.xml'"
660 "execution_count": 65,
662 "output_type": "execute_result"
666 "zfp.infolist()[0].filename"
671 "execution_count": 66,
677 "def walk(node, indent=0):\n",
678 " for child in node:\n",
679 " print(' '*indent, child.tag, ':', child.text.strip())\n",
680 " walk(child, indent+2)"
685 "execution_count": 67,
696 "execution_count": 68,
703 "output_type": "stream",
705 " report_metadata : \n",
706 " org_name : google.com\n",
707 " email : noreply-dmarc-support@google.com\n",
708 " extra_contact_info : https://support.google.com/a/answer/2466580\n",
709 " report_id : 15410706527896810898\n",
711 " begin : 1459123200\n",
712 " end : 1459209599\n",
713 " policy_published : \n",
714 " domain : njae.me.uk\n",
722 " source_ip : 212.69.55.62\n",
724 " policy_evaluated : \n",
725 " disposition : none\n",
729 " header_from : njae.me.uk\n",
730 " auth_results : \n",
732 " domain : njae.me.uk\n",
735 " domain : njae.me.uk\n",
741 "with zipfile.ZipFile(io.BytesIO(pmsg.get_payload(decode=True))) as zf:\n",
742 " fn = zf.infolist()[0].filename\n",
743 " contents = zf.read(fn).decode('utf-8')\n",
744 " root = xml.etree.ElementTree.fromstring(contents)\n",
750 "execution_count": 88,
758 "b'Return-Path: <noreply@dmarc.yahoo.com>\\r\\nDelivered-To: neil@njae.me.uk\\r\\nReceived: from localhost (localhost [127.0.0.1])\\r\\n\\tby mail.njae.me.uk (Postfix) with ESMTP id 2F3B2B4\\r\\n\\tfor <neil@njae.me.uk>; Mon, 23 Nov 2015 16:53:20 +0000 (GMT)\\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=yahoo.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 phn6BeTXjy5q for <neil@njae.me.uk>;\\r\\n\\tMon, 23 Nov 2015 16:53:17 +0000 (GMT)\\r\\nReceived-SPF: None (no SPF record) identity=mailfrom; client-ip=98.138.229.247; helo=n4-vm7.bullet.mail.ne1.yahoo.com; envelope-from=noreply@dmarc.yahoo.com; receiver=dmarc@njae.me.uk \\r\\nAuthentication-Results: mail.njae.me.uk; dkim=pass\\r\\n\\treason=\"2048-bit key; unprotected key\"\\r\\n\\theader.d=yahoo.com header.i=@yahoo.com header.b=dV1Y/4Bc;\\r\\n\\tdkim-adsp=none (unprotected policy); dkim-atps=neutral\\r\\nReceived: from n4-vm7.bullet.mail.ne1.yahoo.com (n4-vm7.bullet.mail.ne1.yahoo.com [98.138.229.247])\\r\\n\\tby mail.njae.me.uk (Postfix) with ESMTPS id A0EA23F\\r\\n\\tfor <dmarc@njae.me.uk>; Mon, 23 Nov 2015 16:53:16 +0000 (GMT)\\r\\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1448297595; bh=oUT0dgwPXhYXV7MKOeA6qc/HcuG/XlY+/W2VclJfB2U=; h=Date:From:To:Subject:From:Subject; b=dV1Y/4Bc0OUvcxyeQZb7hvNYcMSim3elky+sVqi9TMTXDnOOvrzUhZYuz2FMfbQefAz5720bX7vuztbVJAcSWMw3AgNBWfSLyJ2hCLFCipY+R7uqDBA6uAz9WY0jfVVUsyr8Naz2+0J1bK6DAF76AQnfNW0I/2uWjOncYa6YsHjAHs/iOhimhzn0DBrHYW5bU99OSndh7ixjywLryJobMInXWdB8pBXxji6H6C3+80Bn1ZoEGWco5Dwr7W/7LlWlURFxLybxuOBLfAi9ihosOeIUyEpycTOz16VSdG/lm5ycxStdlmw6AXc8GkR6jHkOAZQbm6W3vlFNzvUQbtRWQg==\\r\\nReceived: from [98.138.101.135] by n4.bullet.mail.ne1.yahoo.com with NNFMP; 23 Nov 2015 16:53:15 -0000\\r\\nReceived: from [98.138.237.130] by t7.bullet.mail.ne1.yahoo.com with NNFMP; 23 Nov 2015 16:53:15 -0000\\r\\nReceived: from [127.0.0.1] by launcher100.asd.mail.corp.ne1.yahoo.com with NNFMP; 23 Nov 2015 16:53:15 -0000\\r\\nX-Yahoo-Newman-Property: asdreport\\r\\nX-Yahoo-Newman-Id: 1448246712.259522\\r\\nMIME-Version: 1.0\\r\\nContent-Transfer-Encoding: binary\\r\\nContent-Type: multipart/mixed; boundary=\"_----------=_14482975952874280\"\\r\\nX-Mailer: MIME::Lite 3.027 (F2.73; A2.04; B3.13; Q3.13)\\r\\nDate: Mon, 23 Nov 2015 08:53:15 -0800\\r\\nFrom: noreply@dmarc.yahoo.com\\r\\nTo: dmarc@njae.me.uk\\t\\r\\nSubject: Report Domain: njae.me.uk Submitter: yahoo.com Report-ID: <1448246712.259522>\\r\\nMessage-Id: <1448297594.757634@dmarc.yahoo.com>\\r\\n\\r\\n This is a multi-part message in MIME format.\\r\\n\\r\\n--_----------=_14482975952874280\\r\\nContent-Disposition: inline\\r\\nContent-Length: 44\\r\\nContent-Transfer-Encoding: binary\\r\\nContent-Type: text/plain\\r\\n\\r\\nThis is an aggregate report from Yahoo! Inc.\\r\\n--_----------=_14482975952874280\\r\\nContent-Disposition: attachment; filename=\"yahoo.com!njae.me.uk!1448150400!1448236799.zip\"\\r\\nContent-Transfer-Encoding: base64\\r\\nContent-Type: application/x-zip-compressed; name=\"yahoo.com!njae.me.uk!1448150400!1448236799.zip\"\\r\\n\\r\\nUEsDBBQAAAAIAKdGd0dVgJtgpQEAACMEAAAuABwAeWFob28uY29tIW5qYWUu\\r\\nbWUudWshMTQ0ODE1MDQwMCExNDQ4MjM2Nzk5LnhtbFVUCQADekRTVnpEU1Z1\\r\\neAsAAQQAAAAABAAAAACVU8tyozAQPGe/guQDJGBtJ67SyrnuJ+yJksVga40e\\r\\nJYns5u8zGFlgO1WpnBiaVk/3aGC7/7ov3sAHZc2vp4qUTzv+8IN1AO1eyBPW\\r\\nRcE8OOtjoyGKVkRxBhG2/tAYoYH/EUdrH4vfRhJGM5pYoIXqubMhahEi+NdW\\r\\nCy/J+3iGSKsZnRiJnnqpller1Uu92jxXNanX23VdMzp/TGy0A40X5nBph9ge\\r\\nDsqcT1frclWWjE5IJoBJ4j83z9ttgQZMFqQ3irnnVXjmbK/ke+OGfa/CEWY/\\r\\nFrMYbv4KIBrIcELBCUoE0Z6U5p7RqbigwXVncHwmzHFjDTDqMiAjr8Y4YzF5\\r\\n+9QGjlBany15+2+OHuzgJTTK8c2a1CUpSYVjndFMlHYw2I7Rqch46ghvoh9w\\r\\nUm3+MoZXAa9ZRVyl5H2JLIljdCdCQMY8hckgDqDDdUBTeRSLpLd98XpyPKZa\\r\\nMFF1Crd5PnkE0YJvOm/11bUs8YvWvQATQzw2HsLQx4Xoreuvrj1t9qiScqeX\\r\\nOeCVJFuG/6Z+sF2cJnjXY7Fd9C7YyE97w+ji//8AUEsBAh4DFAAAAAgAp0Z3\\r\\nR1WAm2ClAQAAIwQAAC4AGAAAAAAAAQAAAKSBAAAAAHlhaG9vLmNvbSFuamFl\\r\\nLm1lLnVrITE0NDgxNTA0MDAhMTQ0ODIzNjc5OS54bWxVVAUAA3pEU1Z1eAsA\\r\\nAQQAAAAABAAAAABQSwUGAAAAAAEAAQB0AAAADQIAAAAA\\r\\n\\r\\n--_----------=_14482975952874280--\\r\\n'"
761 "execution_count": 88,
763 "output_type": "execute_result"
767 "msg1 = mailbox.fetch(b'1', '(RFC822)')[1][0][1]\n",
773 "execution_count": 89,
784 "execution_count": 89,
786 "output_type": "execute_result"
790 "pmsg1 = email.message_from_bytes(msg1)\n",
791 "pmsg1.get_content_type()"
796 "execution_count": 90,
803 "output_type": "stream",
807 "yahoo.com!njae.me.uk!1448150400!1448236799.zip\n"
812 "for part in pmsg1.walk():\n",
813 " print(part.get_filename())"
818 "execution_count": 91,
825 "output_type": "stream",
827 "This is an aggregate report from Yahoo! Inc. text/plain\n",
828 "UEsDBBQAAAAIAKdGd0dVgJtgpQEAACMEAAAuABwAeWFob28uY29tIW5qYWUu\r\n",
829 "bWUudWshMTQ0ODE1MDQwMCExNDQ4MjM2Nzk5LnhtbFVUCQADekRTVnpEU1Z1\r\n",
830 "eAsAAQQAAAAABAAAAACVU8tyozAQPGe/guQDJGBtJ67SyrnuJ+yJksVga40e\r\n",
831 "JYns5u8zGFlgO1WpnBiaVk/3aGC7/7ov3sAHZc2vp4qUTzv+8IN1AO1eyBPW\r\n",
832 "RcE8OOtjoyGKVkRxBhG2/tAYoYH/EUdrH4vfRhJGM5pYoIXqubMhahEi+NdW\r\n",
833 "Cy/J+3iGSKsZnRiJnnqpller1Uu92jxXNanX23VdMzp/TGy0A40X5nBph9ge\r\n",
834 "DsqcT1frclWWjE5IJoBJ4j83z9ttgQZMFqQ3irnnVXjmbK/ke+OGfa/CEWY/\r\n",
835 "FrMYbv4KIBrIcELBCUoE0Z6U5p7RqbigwXVncHwmzHFjDTDqMiAjr8Y4YzF5\r\n",
836 "+9QGjlBany15+2+OHuzgJTTK8c2a1CUpSYVjndFMlHYw2I7Rqch46ghvoh9w\r\n",
837 "Um3+MoZXAa9ZRVyl5H2JLIljdCdCQMY8hckgDqDDdUBTeRSLpLd98XpyPKZa\r\n",
838 "MFF1Crd5PnkE0YJvOm/11bUs8YvWvQATQzw2HsLQx4Xoreuvrj1t9qiScqeX\r\n",
839 "OeCVJFuG/6Z+sF2cJnjXY7Fd9C7YyE97w+ji//8AUEsBAh4DFAAAAAgAp0Z3\r\n",
840 "R1WAm2ClAQAAIwQAAC4AGAAAAAAAAQAAAKSBAAAAAHlhaG9vLmNvbSFuamFl\r\n",
841 "Lm1lLnVrITE0NDgxNTA0MDAhMTQ0ODIzNjc5OS54bWxVVAUAA3pEU1Z1eAsA\r\n",
842 "AQQAAAAABAAAAABQSwUGAAAAAAEAAQB0AAAADQIAAAAA\r\n",
843 " application/x-zip-compressed\n"
848 "for p in pmsg1.get_payload():\n",
849 " print(p.get_payload(), p.get_content_type())"
854 "execution_count": 92,
861 "output_type": "stream",
863 "application/x-zip-compressed <zipfile.ZipFile object at 0x7f6538172208>\n"
868 "for p in pmsg1.get_payload():\n",
869 " if 'zip' in p.get_content_type():\n",
870 " print(p.get_content_type(), zipfile.ZipFile(io.BytesIO(p.get_payload(decode=True))))"
875 "execution_count": 93,
882 "output_type": "stream",
884 "application/x-zip-compressed\n",
885 " report_metadata : \n",
886 " org_name : Yahoo! Inc.\n",
887 " email : postmaster@dmarc.yahoo.com\n",
888 " report_id : 1448246712.259522\n",
890 " begin : 1448150400\n",
891 " end : 1448236799\n",
892 " policy_published : \n",
893 " domain : njae.me.uk\n",
900 " source_ip : 65.20.0.12\n",
902 " policy_evaluated : \n",
903 " disposition : none\n",
907 " header_from : njae.me.uk\n",
908 " auth_results : \n",
910 " domain : njae.me.uk\n",
913 " domain : njae.me.uk\n",
914 " result : softfail\n"
919 "for p in pmsg1.get_payload():\n",
920 " if 'zip' in p.get_content_type():\n",
921 " print(p.get_content_type())\n",
922 " with zipfile.ZipFile(io.BytesIO(p.get_payload(decode=True))) as zf:\n",
923 " fn = zf.infolist()[0].filename\n",
924 " contents = zf.read(fn).decode('utf-8')\n",
925 " root = xml.etree.ElementTree.fromstring(contents)\n",
931 "execution_count": 105,
937 "def xml_of_part(part):\n",
938 " with zipfile.ZipFile(io.BytesIO(part.get_payload(decode=True))) as zf:\n",
939 " fn = zf.infolist()[0].filename\n",
940 " contents = zf.read(fn).decode('utf-8')\n",
941 " return xml.etree.ElementTree.fromstring(contents)"
946 "execution_count": 98,
952 "def xml_of(message):\n",
954 " if message.is_multipart():\n",
955 " for p in pmsg1.get_payload():\n",
956 " if 'zip' in p.get_content_type():\n",
957 " reports += [xml_of_part(p)]\n",
959 " reports = [xml_of_part(message)]\n",
965 "execution_count": 104,
973 "[('google.com!njae.me.uk!1459123200!1459209599.xml',\n",
974 " <Element 'feedback' at 0x7f6538174d68>)]"
977 "execution_count": 104,
979 "output_type": "execute_result"
988 "execution_count": 102,
995 "output_type": "stream",
997 " report_metadata : \n",
998 " org_name : Yahoo! Inc.\n",
999 " email : postmaster@dmarc.yahoo.com\n",
1000 " report_id : 1448246712.259522\n",
1002 " begin : 1448150400\n",
1003 " end : 1448236799\n",
1004 " policy_published : \n",
1005 " domain : njae.me.uk\n",
1012 " source_ip : 65.20.0.12\n",
1014 " policy_evaluated : \n",
1015 " disposition : none\n",
1018 " identifiers : \n",
1019 " header_from : njae.me.uk\n",
1020 " auth_results : \n",
1022 " domain : njae.me.uk\n",
1025 " domain : njae.me.uk\n",
1026 " result : softfail\n"
1031 "walk(xml_of(pmsg1)[0])"
1035 "cell_type": "code",
1036 "execution_count": 73,
1042 "ename": "RuntimeError",
1043 "evalue": "No active exception to reraise",
1044 "output_type": "error",
1046 "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
1047 "\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)",
1048 "\u001b[1;32m<ipython-input-73-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",
1049 "\u001b[1;31mRuntimeError\u001b[0m: No active exception to reraise"
1058 "cell_type": "code",
1059 "execution_count": null,
1069 "cell_type": "code",
1070 "execution_count": null,
1080 "cell_type": "code",
1081 "execution_count": null,
1091 "display_name": "Python 3",
1092 "language": "python",
1096 "codemirror_mode": {
1100 "file_extension": ".py",
1101 "mimetype": "text/x-python",
1103 "nbconvert_exporter": "python",
1104 "pygments_lexer": "ipython3",