{ "cells": [ { "cell_type": "code", "execution_count": 6, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import smtplib\n", "import imaplib\n", "import email\n", "#copy the placeholder to config.py and fill in your values\n", "from config import EMAIL_ADDRESS, EMAIL_PASSWORD, PHONE_ADDRESS\n", "SMTP_SERVER='smtp.gmail.com'" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Sending Texts" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(235, b'2.7.0 Accepted')" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#authenticate with smtp server\n", "#note that this does not handle reauthenticating when google wants you to\n", "server = smtplib.SMTP_SSL(SMTP_SERVER, 465)\n", "server.ehlo()\n", "server.login(EMAIL_ADDRESS, EMAIL_PASSWORD)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{}" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#Send a text\n", "server.sendmail(EMAIL_ADDRESS, PHONE_ADDRESS, \"Hello friend\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check your phone! \n", "For whatever reason the core python team decided {} means success and send mail should follow the standard underscore format. Go figure" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Receiving Texts" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('OK', [b'byebyetwilio@gmail.com authenticated (Success)'])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mail = imaplib.IMAP4_SSL(SMTP_SERVER)\n", "mail.login(EMAIL_ADDRESS, EMAIL_PASSWORD)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "('OK', [b'1'])" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#let's look at your mailbox\n", "mail.select('inbox')" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[b'1']" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#uh oh byte strings. That's not human\n", "#Now let's get our messages\n", "_, ids = mail.search(None, \"ALL\")\n", "ids" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[(b'1 (RFC822 {40227}',\n", " b'Delivered-To: byebyetwilio@gmail.com\\r\\nReceived: by 10.140.102.167 with SMTP id w36csp3422969qge;\\r\\n Sun, 11 Feb 2018 17:45:49 -0800 (PST)\\r\\nX-Received: by 10.107.7.87 with SMTP id 84mr4707810ioh.216.1518399948399;\\r\\n Sun, 11 Feb 2018 17:45:48 -0800 (PST)\\r\\nARC-Seal: i=1; a=rsa-sha256; t=1518399948; cv=none;\\r\\n d=google.com; s=arc-20160816;\\r\\n b=r/9CMSzgQB5leVkxRMpjOnzpOqk6kONQtQ71quDi3GApGg7HpICedpFlm/AeNMQh83\\r\\n 8ZVrr+DObLFp3QzAizN7iQqRf4M3mOe28bE5yGakGDGYjBONxBs4F1i164aK8sT8bdPX\\r\\n wmxpX9dI/A9ZJJ9GXu+ge64gDkM05VxMJFsrDZcRa2PQZAvJRutymoUWABXzlRmnYpNQ\\r\\n JBnSWvNXpSxcduktXXPgwKXGGoOecQ/Joi528wJwpfxTtngtip6xC6NEUUBpBw9FL3YN\\r\\n GJvVvG4IjRDNrOJhjrnix18pl1IIij5BOupMAu5DFZLd1WXX7LOczZEBVqWg5PFp9Gjc\\r\\n Up2Q==\\r\\nARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;\\r\\n h=to:from:subject:message-id:feedback-id:reply-to:date:mime-version\\r\\n :dkim-signature:arc-authentication-results;\\r\\n bh=0R0ZpBdpOA+eWDbE5SQE4c3G36iHkynh/HeqqK+I0dk=;\\r\\n b=GJEkcCNHHXSs1nK7zZ+OsrXy0/KOZ56m+pJlJnbPgg5rBfeuaTZ49sZyTkc0KNPrEf\\r\\n nw/lmkWPHowJldLWrK6S8aKQTCRmdqa5cEGEx1Ru02rIWs/W77HB5wA72FaGHui9l0nS\\r\\n TA8h1r9K+i59NNaWDypm6GcuzsAGS7OuUtqzuUs3WYeeIsbDEJ56Q5LQvaOF/2PmeYeO\\r\\n xui220SfcHL3qhD2UNMdAc8Eo58KItV34OFsZc/8Ng4DVGiVMy3ZhipV4Mxb3G+Za1wT\\r\\n jNc/CouKChXDKD26mYqWMPYBN/nceXSOyJFjWJLovid8+PtvRkQlUQ4OQuMlGe2fliRm\\r\\n K9FQ==\\r\\nARC-Authentication-Results: i=1; mx.google.com;\\r\\n dkim=pass header.i=@google.com header.s=20161025 header.b=FEgdGNUK;\\r\\n spf=pass (google.com: domain of 3xfgawgwkdiykxn8-xy1ozv8qyyqvo.mywl8ol8o36svsyqwksv.myw@scoutcamp.bounces.google.com designates 209.85.220.69 as permitted sender) smtp.mailfrom=3xfGAWgwKDIYkxn8-xy1ozv8qyyqvo.mywl8ol8o36svsyqwksv.myw@scoutcamp.bounces.google.com;\\r\\n dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com\\r\\nReturn-Path: <3xfGAWgwKDIYkxn8-xy1ozv8qyyqvo.mywl8ol8o36svsyqwksv.myw@scoutcamp.bounces.google.com>\\r\\nReceived: from mail-sor-f69.google.com (mail-sor-f69.google.com. [209.85.220.69])\\r\\n by mx.google.com with SMTPS id a69sor2734770itc.49.2018.02.11.17.45.41\\r\\n for \\r\\n (Google Transport Security);\\r\\n Sun, 11 Feb 2018 17:45:48 -0800 (PST)\\r\\nReceived-SPF: pass (google.com: domain of 3xfgawgwkdiykxn8-xy1ozv8qyyqvo.mywl8ol8o36svsyqwksv.myw@scoutcamp.bounces.google.com designates 209.85.220.69 as permitted sender) client-ip=209.85.220.69;\\r\\nAuthentication-Results: mx.google.com;\\r\\n dkim=pass header.i=@google.com header.s=20161025 header.b=FEgdGNUK;\\r\\n spf=pass (google.com: domain of 3xfgawgwkdiykxn8-xy1ozv8qyyqvo.mywl8ol8o36svsyqwksv.myw@scoutcamp.bounces.google.com designates 209.85.220.69 as permitted sender) smtp.mailfrom=3xfGAWgwKDIYkxn8-xy1ozv8qyyqvo.mywl8ol8o36svsyqwksv.myw@scoutcamp.bounces.google.com;\\r\\n dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com\\r\\nDKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\\r\\n d=google.com; s=20161025;\\r\\n h=mime-version:date:reply-to:feedback-id:message-id:subject:from:to;\\r\\n bh=0R0ZpBdpOA+eWDbE5SQE4c3G36iHkynh/HeqqK+I0dk=;\\r\\n b=FEgdGNUKtYPt1casm28+I5vngwYiL7yEHYOEWtjsZafW4iRQUM+V6VJzrQn9EsS09t\\r\\n 0wRcfwdk42y9n/sB3Ojzl5b3G8c3WmbyO0Ylt3emImEpR+Pdtvs4s2HhadvZq3r2qqPq\\r\\n 3HKH5P6I7/36RUqw9fmZx98VidAspf6xMMeHvScqmyQBvzh1Wl9J6SPa4OnraHXSVF/1\\r\\n bluntQk9MJd/OEKvCzTpoBakXz/4z0T2TO9UPqOszDQ6y/Jma3O6xbraQ9vqjDUoedAy\\r\\n cXTy9YQFGjQ51hQInFyG/9/tZh1QDDmv6CkzdWqEQ+5Q/Dtyh6EFWux9MEnXOTexxjjV\\r\\n gnFg==\\r\\nX-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;\\r\\n d=1e100.net; s=20161025;\\r\\n h=x-gm-message-state:mime-version:date:reply-to:feedback-id\\r\\n :message-id:subject:from:to;\\r\\n bh=0R0ZpBdpOA+eWDbE5SQE4c3G36iHkynh/HeqqK+I0dk=;\\r\\n b=NpaAJ6VD+LPr1iOGz5B4GTszrkzGWCLV9zeKvuTw2PGkOCXvyzsnkl4cVFtIJpKz0K\\r\\n 9PHeZ6KUutntSKfqT7Os4rWuDWg86Tc4errdx/3U8Xnb6vIVMLnVJvIMHyjlpRtNhOpu\\r\\n /wF/pyxCOr5vfqIpfa3iYeZdCLTUrSMhMvtMPCevKXW/dTjgKBY2nX03QQ0suTs3+8Vv\\r\\n E6lG4iHGP6f8QirQkkBcNMhC9kvqIEDKAD3bMGk+4UMvRW50+RfOwLr1Z90cFcQime6v\\r\\n rB/J+pcN0mYaZeXX/jgnxvzMgMRfC5o0BLmhvIacdec/kTVXcsl1Zp5ppgc4UFaWwWej\\r\\n ktzg==\\r\\nX-Gm-Message-State: APf1xPB/MfGNAgB3EcJMhwGEncpkMu5ulNAly6U5gxk0IwyPiuvdgf2D\\r\\n\\thTOUfkIsRYsu0Og=\\r\\nX-Google-Smtp-Source: AH8x225AfWVxO9pFRJIwdpvDO8xB98TTwcMeJ2NxKIhfL8IDLvxAdkW1Eig3LDg/qpks7GIXJo5p1q8=\\r\\nMIME-Version: 1.0\\r\\nX-Received: by 10.36.179.67 with SMTP id z3mr2928110iti.12.1518399941470; Sun,\\r\\n 11 Feb 2018 17:45:41 -0800 (PST)\\r\\nDate: Sun, 11 Feb 2018 17:45:41 -0800\\r\\nReply-To: Andy from Google \\r\\nX-Google-Id: 22180514\\r\\nFeedback-ID: Len:D422018:C377502:gamma\\r\\nX-Notifications: GAMMA:<7194d6704610335d.1518399941122.110277581.377502.en.593772a4d6bfb019@google.com>\\r\\nMessage-ID: <7194d6704610335d.1518399941122.110277581.377502.en.593772a4d6bfb019@google.com>\\r\\nSubject: Super, welcome to your new Google Account\\r\\nFrom: Andy from Google \\r\\nTo: byebyetwilio@gmail.com\\r\\nContent-Type: multipart/alternative; boundary=\"089e08200610236cc50564fa09c9\"\\r\\n\\r\\n--089e08200610236cc50564fa09c9\\r\\nContent-Type: text/plain; charset=\"UTF-8\"; format=flowed; delsp=yes\\r\\nContent-Transfer-Encoding: base64\\r\\n\\r\\nSGkgU3VwZXIsDQoNCknigJltIHNvIGdsYWQgeW91IGRlY2lkZWQgdG8gdHJ5IG91dCBHbWFpbC4g\\r\\nSGVyZSBhcmUgYSBmZXcgdGlwcyB0byBnZXQgeW91IHVwICANCmFuZCBydW5uaW5nIGZhc3QuDQoN\\r\\nCi0tLS0tLS0tDQoNCkdtYWlsICANCjxodHRwczovL3d3dy5nb29nbGUuY29tL2FwcHNlcnZlL21r\\r\\ndC9wL0FGT20wdUdOWm5QeVJwUDgxa2VzNDljd01KcjdkTVpJRTBMc2tlQ21WZ052anNLSU9Send0\\r\\nOUFmdFR6aFlHbmg4X01zc09vU2dBZU42QU8tS3FYRHlfSWxtMFdLOVJRUno2QkU3dFdWMTdOZzFM\\r\\nRmNCMTR0U3JLZHM3THM2X0ROWnVLYjBJZ1RyOWJtUWNJeC1vRWVMaGptZzNDeGs0QnNqZTZsM2xm\\r\\ncXVOUjZ1cFhVTUE+DQoNCkdtYWlsIG9uIHRoZSBnbw0KDQogIFdpdGggR21haWwgZm9yIEFuZHJv\\r\\naWQgIA0KPGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYXBwc2VydmUvbWt0L3AvQUZPbTB1SEdDalZn\\r\\nMXRmamNhYnc5MWlKcHMtNUpNdUdsWmNmLVZPTzFCck51WF90SGs0Y1h2UHdrbS0wcW9lUlNtQ0d0\\r\\ndWx1YlpuMUhVVTlVdllXRFJYVHg0OFR4NHpkTzFyVF9jZUx0YmQybDBwYXlhNGpzcUJObHpTRFFC\\r\\nRWhxbmlFWHlHdlFjTW13XzQzUnVNNk1OODRENVdLT2owTkNaYW5kdFpSd3pQNnFscmlkUGV6ZE03\\r\\nQ3ptZDFhX3RBemxrZnY1WVZzTmtpdVdJWWgtbmgzeW42dXlqdk1NUT4gIA0KYW5kIGlPUyAgDQo8\\r\\naHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hcHBzZXJ2ZS9ta3QvcC9BRk9tMHVIYWJIbW1ocm9xdF9F\\r\\nN215V3Fyd3NDQlo1OXZIeTFhR2ViQWtxTkl3TG5UUklBeGdDWGZac3NwLW5qZGZMVUlzS1FlYUtx\\r\\nSFk3b1ZFZVNNdk1BM3dELXU4YnE0QXRjWmk5MlFuSjVRb2dYUEp3WWRKdFkxN0xCQ0VhSFZiZmtL\\r\\nb3pWSHRzaUlKZU41NVRROVJwdjFNMTdCZmduRWRDdjBJT1c0Nzd5SGZtTGoxUU9Cdz4sICANCnlv\\r\\ndSBnZXQgcmVhbC10aW1lIG5vdGlmaWNhdGlvbnMgc28geW91IGRvbid0IG1pc3MgaW1wb3J0YW50\\r\\nIGVtYWlscy4NCg0KLS0tLS0tLS0NCg0KUGhvdG9zICANCjxodHRwczovL3d3dy5nb29nbGUuY29t\\r\\nL2FwcHNlcnZlL21rdC9wL0FGT20wdUdTUEg5UUEzSjVianh2NjJNME91dWQ5WnFVX29pZDNCR3U4\\r\\nSFg2RGlqZU5fYXJjSUF6X0J2aFc4Yy1TZnJlSG5RcDdNckwxNWRkOWJPa2ZTbzY0TWVfN0NXcURk\\r\\nYjNUYVM3MnpkN0pVRWFJZWRCcmppYTc3U3hxTG1qeFdJYjgyTk5TSWtKZzJRRXNsMG1IbWE1Z0xa\\r\\nRkJXNlNETHJmM0oyeXAyeFNqYlFXbDlKOUY4YUVQenh0TGUwPg0KDQpOZXZlciBydW4gb3V0IG9m\\r\\nIHN0b3JhZ2UgYWdhaW4NCg0KV2l0aCB0aGUgR29vZ2xlIFBob3RvcyBhcHAsIHlvdSBjYW4gYXV0\\r\\nb21hdGljYWxseSBiYWNrIHVwIGFsbCB5b3VyIHBob3RvcyAgDQppbiBoaWdoIHF1YWxpdHkgZm9y\\r\\nIGZyZWUuIEdldCB0aGUgaVBob25lICANCjxodHRwczovL3d3dy5nb29nbGUuY29tL2FwcHNlcnZl\\r\\nL21rdC9wL0FGT20wdUhhNkJKbW5DZlowSEV1VnAwOG9rT3VfbE9oQTJPckpSeEdKMXpZU1ktU1pq\\r\\nejJwLV9aRDV4WV8zU2xhLXJFUGFIY19IdW9vZllnUmNSUVhGVlRpVE1RMlBaR2RRaHVuM3lZS091\\r\\nVi15cllZbklrdndHbzRfN1pmT2VOcm9uUTB4V2UwdTZZM1JVRkxqdmN1SHNSNjM1aGVlbTBGVGZI\\r\\ndndldWk2V0tPQXNmMjVXNTVLcnJIWE91ZDZRcEp3UW5zczRjbUE4PiAgDQpvciBBbmRyb2lkICAN\\r\\nCjxodHRwczovL3d3dy5nb29nbGUuY29tL2FwcHNlcnZlL21rdC9wL0FGT20wdUhyQU9OWV9iazZ1\\r\\nYTJZREx5SUJ4UjJxRE12QjRrU3BvajRFT2pqOU50aDlBQjVxcUl1OV9ucldRd3V3eGFJWnh1Sjhq\\r\\nSVctYkU5aG1wN19ieGpHb0FqdEp5ZGtJU0VwXzlNbDBVR1AtSEpNaGExVW5BPiAgDQpwaG9uZSBh\\r\\ncHAuDQoNCi0tLS0tLS0tDQoNClRydXN0IHNoaWVsZCAgDQo8aHR0cHM6Ly93d3cuZ29vZ2xlLmNv\\r\\nbS9hcHBzZXJ2ZS9ta3QvcC9BRk9tMHVHQnBhcS1mbmJqLVhvN1BEWXp1dzU4aXNCMjg1V2N0T0Nk\\r\\neXhPMWNvOG43M2ZIOVdBb3B4U21PSm8xY3k4ekNkbXVzZ1FKbWRIYjNWX3FqS2NrYnhHVkp5TDJG\\r\\nNXZQdUNuUW5lYWVTOTQ4UkdQS3FNaUczS1haNWdYcXZSeTZ1emRqdXhfOWZqdVJ5eXcxUDFtOUxy\\r\\nU3FaNTlmV19lTnRKQ1dWby1WPg0KDQpZb3XigJlyZSBpbiBjb250cm9sDQoNCkNob29zZSB3aGF0\\r\\n4oCZcyByaWdodCBmb3IgeW91LiBZb3UgY2FuIHJldmlldyBhbmQgYWRqdXN0IHlvdXIgcHJpdmFj\\r\\neSBhbmQgIA0Kc2VjdXJpdHkgc2V0dGluZ3MgYW55IHRpbWUgYXQgTXkgQWNjb3VudCAgDQo8aHR0\\r\\ncHM6Ly93d3cuZ29vZ2xlLmNvbS9hcHBzZXJ2ZS9ta3QvcC9BRk9tMHVGTFJKa1JoWExOYTQwU0hf\\r\\nQmx0REtXVTBsZ3dvREVhQ0hDQUlNbDRSeW0zS0JGenpfZnlpaUY1UzRzVVZKd2tjUlhHRVlJc3dl\\r\\nbkJtaFhhaGJuRVFPNHRReU41TG1yaGtDdktTbF90bXBSU1FJTmxOZ2EzYTJiU0hhWGNYbGRBVVZY\\r\\nRHhyOFdRMUJDZmJycWo1ZWs3cU9jaWVrdFM3MnNVYnctWi1pQUhMWXhBPi4NCg0KLS0tLS0tLS0N\\r\\nCg0KUmVwbGllcyB0byB0aGlzIGVtYWlsIGFyZW7igJl0IG1vbml0b3JlZCwgYnV0IGlmIHlvdSBo\\r\\nYXZlIGEgcXVlc3Rpb24gdHJ5IHRoZSAgDQpIZWxwIENlbnRlciAgDQo8aHR0cHM6Ly93d3cuZ29v\\r\\nZ2xlLmNvbS9hcHBzZXJ2ZS9ta3QvcC9BRk9tMHVFMjZTaWJxejVHR2Z4bDlOYjl0LTVib1hpdmtz\\r\\nZDRZMkNZdkJWVTg4c29PRG1ubjl1aGtqdV9kRlZPQlJKU3hzOXJYd3Z3YkhQSTN6TjZnY1RieUhL\\r\\nTkIyN2NZVUFLQnVnTkc3Z0JGU2gtd0JscW93Q3NQSGVLNUJ6VkxyNUotUEN2czNtQnJzSnZ5dTdX\\r\\nSTJYd251a1B0dk12a2ZIa2RRPiAgDQpvciBwb3N0IGl0IHRvIHRoZSBHbWFpbCBIZWxwIEZvcnVt\\r\\nICANCjxodHRwczovL3d3dy5nb29nbGUuY29tL2FwcHNlcnZlL21rdC9wL0FGT20wdUZJSHFqdVVj\\r\\na0MzTTdiVFpMd0liQlc2X2cwMzNXbW9JeW9YV3dhdHdRWmNiSnVIV21IYjRZeHFIS2pDYnJqRnJk\\r\\nZXlhNy0xRkRPVUpLSlkzSGt6SWZzLS11SFZfT09KR1d6b2NwUF9LdFUtWVRMTWlLZHgwZlh5U2sy\\r\\nblhGOG1HMGRYSEVxUGFsQnVwc2tJRF9mSF9zb3BDbWdhQWhCa21aQTdPMlJSTVA2QWNRd3lucU5h\\r\\nbUhJV19uNU8wajIzQT4gIA0Kd2hlcmUgbXkgdGVhbSBhbmQgb3RoZXIgZXhwZXJ0IHVzZXJzIGFu\\r\\nc3dlciBxdWVzdGlvbnMuDQoNCg0KRW5qb3kgeW91ciBuZXcgYWNjb3VudCwNCg0KQW5keSAJDQoN\\r\\nCg0KR21haWwgQ29tbXVuaXR5IE1hbmFnZXINCg0KDQpLZWVwIGluIHRvdWNoOiBUd2l0dGVyICAN\\r\\nCjxodHRwczovL3d3dy5nb29nbGUuY29tL2FwcHNlcnZlL21rdC9wL0FGT20wdUVkcEk4LWx0Mm41\\r\\nNkxDWXJtYnhMT3Rjb2NMS25zcnBXWmZ1cVVBQTk5ZVZqMUxkZ19RX1J3VGp2MWdwRjI2a3Z6dUln\\r\\neDhSR29KcHVUajVweEZTb29Ndlc4MjhMSUNFc3FNY2hlcTZESWI1U254NGNzY3E2NGpvdmtRQU9U\\r\\nckdIV3R3NWZRWXNBb3N1cW42ck1adERhV3hsZFJjZ3llQzF3ZUotZVoxZzg+LCAgDQpGYWNlYm9v\\r\\nayAgDQo8aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hcHBzZXJ2ZS9ta3QvcC9BRk9tMHVHTUdwRXRF\\r\\nU1BFT00zTEtRWGhPQnJTcXdSZ1dlNEptUEZIMjFWWjRHQVFEUUk2a0RUcG5kSzdDTXpfUi1TZ045\\r\\nSjZqRXNKTW1HZGVFd21hM1NRdHRPZTgtcEo3R1VPQlJlYmVBQlBIVDJqT1VBNWdjY19qRnVhcDgt\\r\\nVW1LV0JtYmpNUEFSdnJfcVkxTG11d3Ftdk03bTlPWU1PUldPTlVPeXQ2Zz4sICANCkdvb2dsZSsg\\r\\nIA0KPGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYXBwc2VydmUvbWt0L3AvQUZPbTB1RWR3VkkxZDJz\\r\\ncElOWnZ5Z0ZQUGxjd19zbXNNX3c4WnNPdWlaLUVMTmNOS051ZVg4TDY0UkRKVXlaOFpkY1NEbDU4\\r\\nTS02ck9CTUI2MHVyRXFLeF9fS0RtN3ZnenlhSDdiYXcwNUs2TXNQbnBHMm90UE42TWtfbmtGUGVP\\r\\naEMxc3dfSWxlOFN4RE9hQVdSamIwU0Z4c0Znbl9Sc0JOa2lGSFdrcldnRWVBPg0KDQoNCkdldCBH\\r\\nbWFpbCBvbiB0aGUgZ28uDQoNCkdvb2dsZSBQbGF5ICANCjxodHRwczovL3d3dy5nb29nbGUuY29t\\r\\nL2FwcHNlcnZlL21rdC9wL0FGT20wdUZ0Uk81UDZXcEdaSTJwdnk4X0ZzSUlkM1h3bXM1cU8xVklL\\r\\nOV84c2paUmE1c2hqSnItSlZxTURUb3VjMWVJR1EyZjZIOWNlN293ODJ4UFlxeVNiZVFQZmNYUFdM\\r\\nc1g2bHJQMDRfNHBTOEdVVV9wby1VVllIZG5PdW5RQUo0NWJHLWhqVEowb1djOUlpZjRIcXlId05a\\r\\ncnlNZUV1cVNnNXd0N09tT1J1SXhUY0k2RjZ0SXY4YlRiNnF1dHg1SEtfZFF6a2VuZGNoaGxzYjc5\\r\\nZDlOS0FERjg2SDRRPg0KDQpBcHAgU3RvcmUgIA0KPGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20vYXBw\\r\\nc2VydmUvbWt0L3AvQUZPbTB1RWJlbF9nVEk3OEtwazZZYkk2QlN1aVBlTjZyNG9sa1FuU1g0N21p\\r\\nR050aUhxWUE2UWRKMmJKWU1EN2E4UlQ1QzVmT0FoTlBKNUJUOHJyRUJmNEltYzZTZWVZT0NBQ3p5\\r\\nYS0ycTVFMnlRd0ZwQ3QwSFpYODg5cEEyWGRfYzRmeG8zdkJ0c0hxbzI4S3dUZmVjeWtJaldCLXBE\\r\\nazZwS05DLWFWMEI4YVpKbWhJMFJfd2JVPg0KDQoNCkdvb2dsZSAgDQo8aHR0cHM6Ly93d3cuZ29v\\r\\nZ2xlLmNvbS9hcHBzZXJ2ZS9ta3QvcC9BRk9tMHVHdlRiaFdjdURlSmw5U2tCbm0zY3BmTkIxV2RU\\r\\nMC0yLV93YkxaQTI2UW55cUloV3NCeW1TV3NZSW5ycnVfUzI2RU12V0MxS19SbnhMVUE4Wm9ITkxV\\r\\naW9JUW9uNU5keVJUZHY4RFFTdWV1a1BjYi1JUzhITnVUOXZVallqOVZWNFE5VFpzcVZ3VGtMRXZY\\r\\nczR3bkdOemR4MXpvMzl0REdRPg0KDQoNCkdvb2dsZSBTZWFyY2ggIA0KPGh0dHBzOi8vd3d3Lmdv\\r\\nb2dsZS5jb20vYXBwc2VydmUvbWt0L3AvQUZPbTB1RkNKTndxVmV0TWhRcDQzS29pcHBGRlg3Vm1j\\r\\nQzlTckw0bGc4QjRXTG5QVk1NUF8zTEh0bHJEUzBhblZoQkk2Tk1PYkNWTWUyV09zNlVQeDE0M0V1\\r\\neC1fUW1PRXlLbFBSeV9GOUpXV1dsVTAxWU1tTWJmckNYMXlpMmZydVE4Wml2RXVqaG96bG40NGRw\\r\\nZHhJbHBFclhYbzJOX0JkelRsUT4NCg0KR21haWwgIA0KPGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20v\\r\\nYXBwc2VydmUvbWt0L3AvQUZPbTB1SEs2alpmUlc4SlJ0SHIzd3lzUS1QQTY2d3g0TllfdVVPOEdh\\r\\nYnNINHU1aXNfVGdYMl90bnZ6WElQaHJCalR6UzkyN0txZGpmZFJoREJPV3lUTXNSckpXMERJbFhJ\\r\\nLTdFbk1ic1pLaW1KRy1SbTkwYnZNMTNTMm1mUjNqU1B3ZjhlcnBzSlBFdGV0M282MVNITFFhNnZY\\r\\ndDN3YnRwN0xYS0M3NFZUOUI3OHJuaDg+DQoNCk1hcHMgIA0KPGh0dHBzOi8vd3d3Lmdvb2dsZS5j\\r\\nb20vYXBwc2VydmUvbWt0L3AvQUZPbTB1RWJ0ZUw5MnZZT3lCWV8zYmRfaHh1ZjlEenZ0bXpjaUNi\\r\\nRjM0Mk1YY3NtajllVXBHNVBfYVgyZ05JbEY3MlFWQTg5LTA3dmpBTEVPUjZhaThnZXJCLWM4Yk5Z\\r\\nUnotZ2FEUUhQbWE1SjRBV0VhQjg2ZGEtNXExV1d3ODZESTB1RDBJbGMxT0J1aTBRVThFN0dJcEZV\\r\\nT0dNYlNPRDItejBCcGxqQnc+DQoNCllvdVR1YmUgIA0KPGh0dHBzOi8vd3d3Lmdvb2dsZS5jb20v\\r\\nYXBwc2VydmUvbWt0L3AvQUZPbTB1SGd0Z0NUVEdlWUFqVjFRTGtKd0RfUGFMdjVfVjdrUzI2OVVJ\\r\\nTkJDNUs1NGJEd0tIRFJ2TExuOFJyUF9BaWVEdWVvOGxWUkNYV0t3Z1Z4ZENVeUhSZUxGZEVHUjBF\\r\\nY212cmdkQ3ZpYXVVUks5dzdxT3A1YTJFeGV1SWZsdWdrOGY4SG1mZS0xS2duUnppcmtiMVR1bXdo\\r\\nNHhvOVpRPg0KDQpEcml2ZSAgDQo8aHR0cHM6Ly93d3cuZ29vZ2xlLmNvbS9hcHBzZXJ2ZS9ta3Qv\\r\\ncC9BRk9tMHVFVmNFRWpON29yNE42VEVMVThhbjlGREJWV0praXFqWG5ZaFRPRXp2TmNFU0JzWjhl\\r\\nYXozX25KZWo1MkpWRC1vTzV0cEpQSlZBZnZiSGdrT2Z2OXc1eXV5a3AyVE0zZEhkU1FsUnUzX1k2\\r\\nT3lsYkZGU3RYQXlBRS0zendjTTYxLTVCOXplZ3VlY2dGY0FfdlViUm13aFVDZVg1cmU1b3VBRT4N\\r\\nCg0KUGhvdG9zICANCjxodHRwczovL3d3dy5nb29nbGUuY29tL2FwcHNlcnZlL21rdC9wL0FGT20w\\r\\ndUY0RlQ1QlFEZzYzV2pnS01LRzZsVk95d2RWM3VQelFmMFd6UVZxWFlvblNSSTNEVzl6bWdDWG0t\\r\\nZW0zV2pZbFlPWkRkbzFENXd1M210d016UnVET0llVk5YZUh6RVFuRENMS2FsNXpJY1pzMVZ5LUEw\\r\\nQ0lwSEpqX1pVTFZOcVNTa21xTUswdV9NcXA4MUZHdTZacHQtTjhRRlJMaExSS0ZXQWlnPg0KDQpQ\\r\\nbGF5ICANCjxodHRwczovL3d3dy5nb29nbGUuY29tL2FwcHNlcnZlL21rdC9wL0FGT20wdUZ2Ymdh\\r\\nUTJXYWpNT2o2Zk9PaS1CUDVpT3A0MU1sWVlvRVNieUFmR09jV3Bxa2VMNlM3ZE1QczBXN0dRdEVl\\r\\nRW9KVXlhbHRXdVF2Ujh0RWNWb2VYVnBsUUdxN0otS1M3MlF3cm9RckpwUXJzV1hKUDdqWDhFcDBr\\r\\nQ3dGYmdUSUs0b1loajM2c1ZDeWo2TGNqZzZrVEpSSUVadWNoeDc4UXo4bnZxZz4NCg0KQ2hyb21l\\r\\nICANCjxodHRwczovL3d3dy5nb29nbGUuY29tL2FwcHNlcnZlL21rdC9wL0FGT20wdUhzcWlTRklL\\r\\nQ19Nck9uYktkSEtUR0xVaUVxQ0xRLXkxM3BrbnlDVHUxR3I1ang4SEEwM1JmUU80Q1RVZlFFNVVN\\r\\nRlJnZHJhTzZNeVVvc19HMVVTZUV6dGRaaTVoM1VaRk9yZXRJdFctV2lHR01kM2lRYmcxbUdsQWll\\r\\nRkQ3QjZYS09LQlZ0NUtaSjlTclhkMjJjcC0xTmxOaEdvMGlXNEZCMmNSdEc0YU0+DQoNCg0Kwqkg\\r\\nMjAxOCBHb29nbGUgTExDIDE2MDAgQW1waGl0aGVhdHJlIFBhcmt3YXksIE1vdW50YWluIFZpZXcs\\r\\nIENBIDk0MDQzDQpUaGlzIGVtYWlsIHdhcyBzZW50IHRvIHlvdSBiZWNhdXNlIHlvdSBjcmVhdGVk\\r\\nIGEgR29vZ2xlIEFjY291bnQuDQo=\\r\\n--089e08200610236cc50564fa09c9\\r\\nContent-Type: text/html; charset=\"UTF-8\"\\r\\nContent-Transfer-Encoding: quoted-printable\\r\\n\\r\\n\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t \\r\\n \\r\\n \\r\\n =20\\r\\n \\r\\n \\r\\n \\t\\t I=E2=80=99m so glad you decided to try out Gmail. Here a=\\r\\nre a few tips to get you up and running fast.\\r\\n \\r\\n \\r\\n \\t\\t \\r\\n\\r\\n\\r\\n \\r\\n =20\\r\\n \\t\\t\\t\\t \\r\\n\\t\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t \\r\\n \\r\\n
\\r\\n \\r\\n 3D\"Gmail\"\\r\\n \\r\\n
Gmail on the go
\\r\\n
With Gmail for Android and iOS, you get real-time notifications so you don\\'t mi=\\r\\nss important emails.
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t \\r\\n \\r\\n
\\r\\n \\r\\n 3D\"Photos\"\\r\\n =20\\r\\n
Never run out of storage again
\\r\\n
With the Google Photos app, you can automatically back up =\\r\\nall your photos in high quality for free. Get the iP=\\r\\nhone or Android phone app.
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n =20\\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t \\r\\n \\r\\n
\\r\\n \\r\\n 3D\"Trust\\r\\n \\r\\n
You=E2=80=99re in control
\\r\\n
Choose what=E2=80=99s right for you. You can review and a=\\r\\ndjust your privacy and security settings any time at My Account.
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n \\r\\n \\t\\t \\r\\n \\r\\n =20\\r\\n \\r\\n \\t \\r\\n \\r\\n =20\\r\\n =20\\r\\n =20\\r\\n =20\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n\\r\\n =20\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n =20\\r\\n =20\\r\\n =20\\r\\n =20\\r\\n =20\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
Replies to this email aren=E2=80=99t monitored, but if yo=\\r\\nu have a question try the Help Center or post it to the Gmail Help Forum where my team and other expert =\\r\\nusers answer questions.\\r\\n\\r\\n
Enjoy your new account,
\\r\\n 3D\"Andy\"\\r\\n
\\r\\n Gmail Community Manager\\r\\n
Keep in touch: Twitter, Facebook, Google+
\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
Get Gmai=\\r\\nl on the go.\\r\\n
\\r\\n
\\r\\n3D\"Google\\r\\n=20\\r\\n\\r\\n3D\"App\\r\\n
\\r\\n
\\r\\n \\r\\n 3D\"Google\"\\r\\n \\r\\n
\\r\\n =20\\r\\n \\r\\n \\r\\n =20\\r\\n \\r\\n \\r\\n =20\\r\\n \\r\\n \\r\\n =20\\r\\n =20\\r\\n \\r\\n \\r\\n =20\\r\\n \\r\\n \\r\\n =20\\r\\n \\r\\n =20\\r\\n =20\\r\\n \\r\\n =20\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n 3D\"Google\\r\\n \\r\\n \\r\\n \\r\\n 3D\"Gmail\"\\r\\n \\r\\n \\r\\n \\r\\n 3D\"Maps\"\\r\\n \\r\\n \\r\\n \\r\\n 3D\"YouTube\"\\r\\n \\r\\n \\r\\n \\r\\n 3D\"Drive\"\\r\\n \\r\\n \\r\\n \\r\\n 3D\"Photos\"=20\\r\\n \\r\\n \\r\\n \\r\\n 3D\"Play\"=20\\r\\n \\r\\n \\r\\n \\r\\n 3D\"Chrome\"\\r\\n \\r\\n
\\r\\n
\\r\\n =C2=A9 2018 Google LLC 1600 Amphitheatre Parkway, Mountain =\\r\\nView, CA 94043
This email was sent to you because you created a Google A=\\r\\nccount.\\r\\n
\\r\\n \\r\\n \\r\\n =20\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\t\\t<=\\r\\n/td>\\r\\n\\t\\t\\t\\t\\r\\n\\t\\t\\t\\r\\n\\t\\t\\r\\n\\t\\t =\\r\\n;\\r\\n\\t\\r\\n\\r\\n
\\r\\n                    =\\r\\n        \\r\\n                     =\\r\\n;        \\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n--089e08200610236cc50564fa09c9--\\r\\n'),\n", " b' FLAGS (\\\\Seen))']" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "#parse it\n", "mail.fetch(ids[0], '(RFC822)')[1]" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Hi Super,\r\n", "\r\n", "I’m so glad you decided to try out Gmail. Here are a few tips to get you up \r\n", "and running fast.\r\n", "\r\n", "--------\r\n", "\r\n", "Gmail \r\n", "\r\n", "\r\n", "Gmail on the go\r\n", "\r\n", " With Gmail for Android \r\n", " \r\n", "and iOS \r\n", ", \r\n", "you get real-time notifications so you don't miss important emails.\r\n", "\r\n", "--------\r\n", "\r\n", "Photos \r\n", "\r\n", "\r\n", "Never run out of storage again\r\n", "\r\n", "With the Google Photos app, you can automatically back up all your photos \r\n", "in high quality for free. Get the iPhone \r\n", " \r\n", "or Android \r\n", " \r\n", "phone app.\r\n", "\r\n", "--------\r\n", "\r\n", "Trust shield \r\n", "\r\n", "\r\n", "You’re in control\r\n", "\r\n", "Choose what’s right for you. You can review and adjust your privacy and \r\n", "security settings any time at My Account \r\n", ".\r\n", "\r\n", "--------\r\n", "\r\n", "Replies to this email aren’t monitored, but if you have a question try the \r\n", "Help Center \r\n", " \r\n", "or post it to the Gmail Help Forum \r\n", " \r\n", "where my team and other expert users answer questions.\r\n", "\r\n", "\r\n", "Enjoy your new account,\r\n", "\r\n", "Andy \t\r\n", "\r\n", "\r\n", "Gmail Community Manager\r\n", "\r\n", "\r\n", "Keep in touch: Twitter \r\n", ", \r\n", "Facebook \r\n", ", \r\n", "Google+ \r\n", "\r\n", "\r\n", "\r\n", "Get Gmail on the go.\r\n", "\r\n", "Google Play \r\n", "\r\n", "\r\n", "App Store \r\n", "\r\n", "\r\n", "\r\n", "Google \r\n", "\r\n", "\r\n", "\r\n", "Google Search \r\n", "\r\n", "\r\n", "Gmail \r\n", "\r\n", "\r\n", "Maps \r\n", "\r\n", "\r\n", "YouTube \r\n", "\r\n", "\r\n", "Drive \r\n", "\r\n", "\r\n", "Photos \r\n", "\r\n", "\r\n", "Play \r\n", "\r\n", "\r\n", "Chrome \r\n", "\r\n", "\r\n", "\r\n", "© 2018 Google LLC 1600 Amphitheatre Parkway, Mountain View, CA 94043\r\n", "This email was sent to you because you created a Google Account.\r\n", "\n" ] } ], "source": [ "#very ugly. let's use the email library to read it\n", "message=email.message_from_bytes(mail.fetch(ids[0], '(RFC822)')[1][0][1])\n", "for part in message.walk():\n", " ctype = part.get_content_type()\n", " if ctype in [\"text/plain\"]:\n", " message = (part.get_payload(decode=True))\n", " print(message.decode())" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "collapsed": true }, "outputs": [], "source": [ "#We just need texts. Send yourself a reply to the text you should have gotten earlier" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [], "source": [ "def read_text(message):\n", " for part in message.walk():\n", " ctype = part.get_content_type()\n", " if ctype in [\"text/plain\"]:\n", " message = (part.get_payload(decode=True))\n", " return message.decode()" ] }, { "cell_type": "code", "execution_count": 28, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "312-------@vzwpix.com Im not your friend buddy\n", "Andy from Google Hi Super,\r\n", "\r\n", "I’m so glad you decided to try out Gmail. Here are a few tips to get you up \r\n", "and running fast.\r\n", "\r\n", "--------\r\n", "\r\n", "Gmail \r\n", "\r\n", "\r\n", "Gmail on the go\r\n", "\r\n", " With Gmail for Android \r\n", " \r\n", "and iOS \r\n", ", \r\n", "you get real-time notifications so you don't miss important emails.\r\n", "\r\n", "--------\r\n", "\r\n", "Photos \r\n", "\r\n", "\r\n", "Never run out of storage again\r\n", "\r\n", "With the Google Photos app, you can automatically back up all your photos \r\n", "in high quality for free. Get the iPhone \r\n", " \r\n", "or Android \r\n", " \r\n", "phone app.\r\n", "\r\n", "--------\r\n", "\r\n", "Trust shield \r\n", "\r\n", "\r\n", "You’re in control\r\n", "\r\n", "Choose what’s right for you. You can review and adjust your privacy and \r\n", "security settings any time at My Account \r\n", ".\r\n", "\r\n", "--------\r\n", "\r\n", "Replies to this email aren’t monitored, but if you have a question try the \r\n", "Help Center \r\n", " \r\n", "or post it to the Gmail Help Forum \r\n", " \r\n", "where my team and other expert users answer questions.\r\n", "\r\n", "\r\n", "Enjoy your new account,\r\n", "\r\n", "Andy \t\r\n", "\r\n", "\r\n", "Gmail Community Manager\r\n", "\r\n", "\r\n", "Keep in touch: Twitter \r\n", ", \r\n", "Facebook \r\n", ", \r\n", "Google+ \r\n", "\r\n", "\r\n", "\r\n", "Get Gmail on the go.\r\n", "\r\n", "Google Play \r\n", "\r\n", "\r\n", "App Store \r\n", "\r\n", "\r\n", "\r\n", "Google \r\n", "\r\n", "\r\n", "\r\n", "Google Search \r\n", "\r\n", "\r\n", "Gmail \r\n", "\r\n", "\r\n", "Maps \r\n", "\r\n", "\r\n", "YouTube \r\n", "\r\n", "\r\n", "Drive \r\n", "\r\n", "\r\n", "Photos \r\n", "\r\n", "\r\n", "Play \r\n", "\r\n", "\r\n", "Chrome \r\n", "\r\n", "\r\n", "\r\n", "© 2018 Google LLC 1600 Amphitheatre Parkway, Mountain View, CA 94043\r\n", "This email was sent to you because you created a Google Account.\r\n", "\n" ] } ], "source": [ "mail.select('inbox')#this refreshes your inbox\n", "_, ids = mail.search(None, \"ALL\")\n", "for i in reversed(ids[0].split()):\n", " message=email.message_from_bytes(mail.fetch(i, '(RFC822)')[1][0][1])\n", " print(message.get(\"from\"), read_text(message))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "That's it. \n", "The email library is pretty crap but go explore. I think someone should really make a better version like requests did for http" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.4.5" } }, "nbformat": 4, "nbformat_minor": 2 }