{ "info": { "author": "Roman Haritonov", "author_email": "reclosedev@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Communications :: Email", "Topic :: Internet :: WWW/HTTP :: WSGI :: Server" ], "description": ".. image:: https://travis-ci.org/reclosedev/lathermail.svg?branch=master\n :target: https://travis-ci.org/reclosedev/lathermail\n\n.. image:: https://coveralls.io/repos/reclosedev/lathermail/badge.svg?branch=master&service=github\n :target: https://coveralls.io/github/reclosedev/lathermail?branch=master\n\nlathermail\n==========\n\nSMTP Server with API for email testing inspired by `mailtrap `_ and\n`maildump `_\n\nCan store messages in MongoDB or any SQLAlchemy supported DB (e.g., sqlite). Supports Python 2.7, 3.4, 3.5, pypy.\n\nContains simple UI interface (AngularJS) to navigate and manage received messages.\n\nUsage::\n\n $ virtualenv venv # or mkvirutalenv lathermail\n $ . venv/bin/activate\n $ pip install lathermail\n $ lathermail --help\n\n usage: lathermail [-h] [--db-uri DB_URI] [--api-host API_HOST]\n [--api-port API_PORT] [--smtp-host SMTP_HOST]\n [--smtp-port SMTP_PORT]\n\n optional arguments:\n -h, --help show this help message and exit\n --db-uri DB_URI DB URI, e.g. mongodb://localhost/lathermail,\n sqlite:////tmp/my.db (default:\n sqlite:///~/.lathermail.db)\n --api-host API_HOST API Host (default: 127.0.0.1)\n --api-port API_PORT API port (default: 5000)\n --smtp-host SMTP_HOST\n SMTP host (default: 127.0.0.1)\n --smtp-port SMTP_PORT\n SMTP port (default: 2525)\n\n\nIt will start SMTP server and API server in single process.\nAlso UI interface is available at API port (http://127.0.0.1:5000 by default)\n\nInboxes are identified by SMTP user/password pairs. lathermail intended to be used in single project environment.\n\nTo send email, just use SMTP client with auth support.\n\n\nAPI\n---\n\nTo request API, you must provide headers:\n\n* ``X-Mail-Password`` - same as SMTP password\n* ``X-Mail-Inbox`` - same as SMTP user. Optional, work with all inboxes if not specified\n\n**GET /api/0/inboxes/**\n\nReturns list of inboxes for passed ``X-Mail-Password``::\n\n {\n \"inbox_list\": [\n \"first\",\n \"second\",\n \"third\"\n ],\n \"inbox_count\": 3\n }\n\n\n**GET /api/0/messages/**\n\nReturns single message. Example::\n\n {\n \"message_info\": {\n \"message_raw\": \"Content-Type: multipart/mixed; boundary=\\\"===============3928630509694630745==...\",\n \"password\": \"password\",\n \"sender\": {\n \"name\": \"Me\",\n \"address\": \"asdf@exmapl.com\"\n },\n \"recipients\": [\n {\n \"name\": \"Rcpt1\",\n \"address\": \"rcpt1@example.com\"\n },\n {\n \"name\": \"Rcpt2\",\n \"address\": \"rcpt2@example.com\"\n },\n {\n \"name\": \"\",\n \"address\": \"rcpt3@example.com\"\n }\n ],\n \"recipients_raw\": \"=?utf-8?q?Rcpt1?= ,\\n =?utf-8?q?Rcpt2?= , rcpt3@example.com\",\n \"created_at\": \"2014-06-24T15:28:35.045000+00:00\",\n \"sender_raw\": \"Me \",\n \"parts\": [\n {\n \"index\": 0,\n \"body\": \"you you \\u043f\\u0440\\u0438\\u0432\\u0435\\u0442 2\",\n \"is_attachment\": false,\n \"charset\": \"utf-8\",\n \"filename\": null,\n \"type\": \"text/plain\",\n \"size\": 16\n },\n {\n \"index\": 1,\n \"body\": null,\n \"is_attachment\": true,\n \"charset\": null,\n \"filename\": \"t\\u0430\\u0441\\u0434est.txt\",\n \"type\": \"application/octet-stream\",\n \"size\": 12\n }\n ],\n \"inbox\": \"inbox\",\n \"_id\": \"53a960e3312f9156b7c92c5b\",\n \"subject\": \"Test subject \\u0445\\u044d\\u043b\\u043b\\u043e\\u0443 2\",\n \"read\": false\n }\n }\n\nAttachments in message have ``body`` = null. To download file, use following method.\n\n\n**GET /api/0/messages//attachments/**\n\nReturns file from message. Works in browsers.\n\n\n**GET /api/0/messages/**\n\nReturns messages according to optional filters:\n\n* ``sender.name`` - Name of sender\n* ``sender.address`` - Email of sender\n* ``recipients.name`` - Name of any of recipients\n* ``recipients.address`` - Email of any of recipients\n* ``subject`` - Message subject\n* Add ``_contains`` suffix to any field above to search substring match,\n e.g.: ``subject_contains``, ``recipients.address_contains``\n* ``created_at_lt`` - Filter messages created before this ISO formatted datetime\n* ``created_at_gt`` - Filter messages created after this ISO formatted datetime\n* ``read`` - Return only read emails when `True` or unread when `False`. All emails returned by default\n\nExample::\n\n {\n \"message_count\": 3,\n \"message_list\": [\n {\"_id\": ..., \"parts\": [...], ...}, // same as single message\n {...},\n {...}\n ]\n }\n\n**DELETE /api/0/messages/**\n\nDeletes single message\n\n**DELETE /api/0/messages/**\n\nDeletes all messages in inbox. Also, you can filter deletable messages like in **GET /api/0/**\n\n\nConfiguration\n-------------\nCopy lathermail.conf.example, modify it, export environment variable before starting::\n\n $ export LATHERMAIL_SETTINGS=/path/to/lathermail.conf\n $ lathermail\n\n\nTo run tests::\n\n $ python -m tests\n\n\n.. :changelog:\n\nChangelog\n---------\n\n0.4.1 (2017-02-06)\n++++++++++++++++++\n* [UI] Add button to delete single or all messages\n\n\n0.4.0 (2017-02-06)\n++++++++++++++++++\n* Add ``_contains`` filters\n* Fix error with simple text format emails\n\n\n0.3.1 (2016-09-02)\n++++++++++++++++++\n* Proper fix for ``message_from_string`` on Python 2\n\n0.3.0 (2016-09-01)\n++++++++++++++++++\n* HTML multipart support (#2, #3)\n* Fix multipart binary messages", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/reclosedev/lathermail/", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "lathermail", "package_url": "https://pypi.org/project/lathermail/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/lathermail/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/reclosedev/lathermail/" }, "release_url": "https://pypi.org/project/lathermail/0.4.1/", "requires_dist": null, "requires_python": null, "summary": "SMTP Server with API for email testing inspired by mailtrap and maildump", "version": "0.4.1" }, "last_serial": 2623402, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "7e3f653e9a44a091d4fddb170647bddb", "sha256": "78844b08ed439daa3d92969da83cb107452ea10e8cf73fc685958ba4db09f73e" }, "downloads": -1, "filename": "lathermail-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7e3f653e9a44a091d4fddb170647bddb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15898, "upload_time": "2015-10-30T13:15:34", "url": "https://files.pythonhosted.org/packages/b2/3f/1c625cb9ac4d629d121c021be1560eda9a17961ec1e20a9267708e4b913b/lathermail-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "c821cb7228d0f5895dbc1f5fc2c1152e", "sha256": "fca7596ea22def577c199bcc76ffbbe3a596d0ae4e2553e079143b76494088b1" }, "downloads": -1, "filename": "lathermail-0.1.1.tar.gz", "has_sig": false, "md5_digest": "c821cb7228d0f5895dbc1f5fc2c1152e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15902, "upload_time": "2015-10-30T13:20:39", "url": "https://files.pythonhosted.org/packages/c2/96/98005cef5f2cd8c068e4bdfc15c858ea75fc64e72f669b2cc3ef6ec3ff79/lathermail-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "99bc8d0a19163ea9f1c97aee21a6f469", "sha256": "95b6284ab0d18323fcea8e0d78608b4db635a7b026a9f1ab75e9cff4e1cf4874" }, "downloads": -1, "filename": "lathermail-0.1.2.tar.gz", "has_sig": false, "md5_digest": "99bc8d0a19163ea9f1c97aee21a6f469", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15912, "upload_time": "2015-10-30T13:26:07", "url": "https://files.pythonhosted.org/packages/aa/5d/26acb3b83157b834f29e38d0570dc740c5ab250113f663c61fa4f36e3ce0/lathermail-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "968d0f799c5055b53740fa4ab8cf05b7", "sha256": "ff7d178a0df55c2643d1ec3ee530b5c5910bda64bb093d7240e14acc069968d0" }, "downloads": -1, "filename": "lathermail-0.1.3.tar.gz", "has_sig": false, "md5_digest": "968d0f799c5055b53740fa4ab8cf05b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15918, "upload_time": "2015-10-30T13:30:38", "url": "https://files.pythonhosted.org/packages/5a/49/a6712d8bfda0b26457647e261cf297c7a63334014e2f1f0834ac92798a8e/lathermail-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "3c532effa43ec2e37a50b99161fe3988", "sha256": "edff95c4c8aecc5ac64d76bcc40ea1c19dcb71601fc6aa0036134850ef4ec1d5" }, "downloads": -1, "filename": "lathermail-0.1.4.tar.gz", "has_sig": false, "md5_digest": "3c532effa43ec2e37a50b99161fe3988", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15977, "upload_time": "2015-10-30T16:02:24", "url": "https://files.pythonhosted.org/packages/ce/2f/417531e96b758c8637a3e79a8ed3320af74746aed8776c4fffe90b8e6fe3/lathermail-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "7f9913cc24a5899e9c943bb15293132d", "sha256": "dd86fb844549f6b7d05759e617185af0f9195ac3c06d6052bccb0f02f35ee01c" }, "downloads": -1, "filename": "lathermail-0.1.5.tar.gz", "has_sig": false, "md5_digest": "7f9913cc24a5899e9c943bb15293132d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16393, "upload_time": "2015-10-31T13:30:25", "url": "https://files.pythonhosted.org/packages/50/cb/7c29f926878a6a2c4f1f1c9c98dc27f8117b9eaf50ca0bdd16150179edf1/lathermail-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "75522cc62e93abec7418077516e3a0bf", "sha256": "ee863acfdb542346d3830fc907be2f84c5822ee0046be4ccfe499ce5d421c10b" }, "downloads": -1, "filename": "lathermail-0.1.6.tar.gz", "has_sig": false, "md5_digest": "75522cc62e93abec7418077516e3a0bf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16430, "upload_time": "2015-11-01T17:02:55", "url": "https://files.pythonhosted.org/packages/6f/f5/c4c01a9af4310dc9278822d300960ec02bb6338cf9ac454a8d4855aae5ab/lathermail-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "af3fb965c5ecb6a0b5e03db78943768c", "sha256": "e6a2849adb5e62b5ad07f1dec736b065956e55467f23dd5f9b75e2369a1a6df8" }, "downloads": -1, "filename": "lathermail-0.1.7.tar.gz", "has_sig": false, "md5_digest": "af3fb965c5ecb6a0b5e03db78943768c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16963, "upload_time": "2015-11-02T15:04:16", "url": "https://files.pythonhosted.org/packages/74/76/8f91bd827ff54ff9cd8a8b1462742c4b06659c5243b313b9bf50a12f42ae/lathermail-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "574f2c3b449e5784fb1be5931cb7ba10", "sha256": "82cb2adc3a6fedd77003ee32074762bb373b35fd09f9474ef50b2683fcb38fbe" }, "downloads": -1, "filename": "lathermail-0.1.8.tar.gz", "has_sig": false, "md5_digest": "574f2c3b449e5784fb1be5931cb7ba10", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17255, "upload_time": "2015-11-02T18:05:54", "url": "https://files.pythonhosted.org/packages/ca/86/da5c47afbfe7dcee0e3c2b576ce7dd02f05e7bb915eed546c5f2b83fd2fc/lathermail-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "0b58be5e68f78f3c466882ba50456240", "sha256": "ada0ee81da35a80c5fd200e467e5bdad256919258146794ccdf6e21a76d363fd" }, "downloads": -1, "filename": "lathermail-0.1.9.tar.gz", "has_sig": false, "md5_digest": "0b58be5e68f78f3c466882ba50456240", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17260, "upload_time": "2015-11-02T20:19:50", "url": "https://files.pythonhosted.org/packages/aa/37/0f9e49f93aafe1f98c269d4af3e6a5a47ed5d3e34c25dbed05016c36f3da/lathermail-0.1.9.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "cfb4a0976bbd8e1a4c68c7e6f2f106ff", "sha256": "942860c07b00ede14b965d7b0acd1a96238bb8ab05f213c411669b2b36a56c6d" }, "downloads": -1, "filename": "lathermail-0.2.0.tar.gz", "has_sig": false, "md5_digest": "cfb4a0976bbd8e1a4c68c7e6f2f106ff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17538, "upload_time": "2015-11-04T09:04:04", "url": "https://files.pythonhosted.org/packages/b1/92/ba5f41605dca1889064806802f3d9e183fee68ce4bcc8e77e03636f0681f/lathermail-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "63cad30ad70ab2925824be927fdb464e", "sha256": "c99a451c7498b3c5c62554e57cec559878193a07ac5cd837601e95702b298ffd" }, "downloads": -1, "filename": "lathermail-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "63cad30ad70ab2925824be927fdb464e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 26065, "upload_time": "2016-09-01T21:29:37", "url": "https://files.pythonhosted.org/packages/e0/6a/e094da6fb7d8882837a4a175f9f481a55c3c9be5248da51d416508725e7c/lathermail-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "866af675fe4f01ea93bdffd66e82979e", "sha256": "f9d221d9f75cabfd06bb466de94620ff4f7820c7f319eb0acf8a70ce93c0f89e" }, "downloads": -1, "filename": "lathermail-0.3.0.tar.gz", "has_sig": false, "md5_digest": "866af675fe4f01ea93bdffd66e82979e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18730, "upload_time": "2016-09-01T21:29:40", "url": "https://files.pythonhosted.org/packages/8e/f1/3925aaf63901e1edde0ffea0e3101afa06c0ebee4f1c6ba82c04705320ca/lathermail-0.3.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "041da46bef40af6ea41cde5f6d5c8049", "sha256": "b601769b54fa54a9b7d34401bb53dad1b728a43b3d3954ed3115e6eb61d41985" }, "downloads": -1, "filename": "lathermail-0.3.0.zip", "has_sig": false, "md5_digest": "041da46bef40af6ea41cde5f6d5c8049", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30271, "upload_time": "2016-09-01T21:29:42", "url": "https://files.pythonhosted.org/packages/87/bd/30899070f89e875e1999d2ffc477ccdc7ec4fa47a902d34202c0d26a3124/lathermail-0.3.0.zip" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "2bfac27d5955f855a5c952163727056e", "sha256": "5872f9912cf8cd411abbc25fc71cd47aafa20c8d81ce1b0fa90b338544a3b5dd" }, "downloads": -1, "filename": "lathermail-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "2bfac27d5955f855a5c952163727056e", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26140, "upload_time": "2016-09-02T09:05:18", "url": "https://files.pythonhosted.org/packages/a8/c9/f7e06a475dfe7f370b918b41f2074f3b3b609993a668a526fd17e2fd7493/lathermail-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "862c31582cdc5fd94f97a59b332fe9f9", "sha256": "a471eb51c9168459abd32a615249d64e024acc6e895bad8ceea2593a3b27d79b" }, "downloads": -1, "filename": "lathermail-0.3.1.tar.gz", "has_sig": false, "md5_digest": "862c31582cdc5fd94f97a59b332fe9f9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20598, "upload_time": "2016-09-02T09:05:15", "url": "https://files.pythonhosted.org/packages/89/26/1e24d57afb46d030e9eb1cd48dd3214f7c1c4caf1bd703abd97ff435f255/lathermail-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "20fbabcaafacad582909907772be8188", "sha256": "7850a828ffeab166ec0c1fc95400f6ab08cf3daa5d225bbd61e8738b602abe18" }, "downloads": -1, "filename": "lathermail-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "20fbabcaafacad582909907772be8188", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 26840, "upload_time": "2017-02-06T19:43:06", "url": "https://files.pythonhosted.org/packages/3e/e7/5f659282a9842f7f49c2a68571318aad838878810fc592c7fdfedd0ee7e8/lathermail-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "43400b286e06aabbae89181d22e8b4fc", "sha256": "953bce3ce328cc6bbe9eef16eba8bfe3c2fa740fccc51c7343209d3cb84566a2" }, "downloads": -1, "filename": "lathermail-0.4.0.tar.gz", "has_sig": false, "md5_digest": "43400b286e06aabbae89181d22e8b4fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21182, "upload_time": "2017-02-06T19:43:02", "url": "https://files.pythonhosted.org/packages/45/40/f2c25d07bb94a8805513b0ea01389418fd9e32ab363e198ec6c37a1bb2f0/lathermail-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "d9ac7e4fcc47d0f458fde92813664b1c", "sha256": "a90f5465416aee6509ea941da534d7bd2ce6886ae282b0cd9d1270d4e557550b" }, "downloads": -1, "filename": "lathermail-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d9ac7e4fcc47d0f458fde92813664b1c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27331, "upload_time": "2017-02-06T20:52:50", "url": "https://files.pythonhosted.org/packages/8f/d1/fadcd2138e69cf1d6e6a5bf6fa0c9247dfdd0842e989bfe8cff77772e5d4/lathermail-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c795c083cf4620cb478e515915d8169b", "sha256": "9764a4c159655e841010e357122fdba77ca133766a1a3a788ca70d7bda97c13d" }, "downloads": -1, "filename": "lathermail-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c795c083cf4620cb478e515915d8169b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21752, "upload_time": "2017-02-06T20:52:47", "url": "https://files.pythonhosted.org/packages/3c/11/0fcefe7b0209554f7a850493ae7ad4e3f628f23fb9d7542f28c45c2d9ae9/lathermail-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d9ac7e4fcc47d0f458fde92813664b1c", "sha256": "a90f5465416aee6509ea941da534d7bd2ce6886ae282b0cd9d1270d4e557550b" }, "downloads": -1, "filename": "lathermail-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "d9ac7e4fcc47d0f458fde92813664b1c", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 27331, "upload_time": "2017-02-06T20:52:50", "url": "https://files.pythonhosted.org/packages/8f/d1/fadcd2138e69cf1d6e6a5bf6fa0c9247dfdd0842e989bfe8cff77772e5d4/lathermail-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c795c083cf4620cb478e515915d8169b", "sha256": "9764a4c159655e841010e357122fdba77ca133766a1a3a788ca70d7bda97c13d" }, "downloads": -1, "filename": "lathermail-0.4.1.tar.gz", "has_sig": false, "md5_digest": "c795c083cf4620cb478e515915d8169b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21752, "upload_time": "2017-02-06T20:52:47", "url": "https://files.pythonhosted.org/packages/3c/11/0fcefe7b0209554f7a850493ae7ad4e3f628f23fb9d7542f28c45c2d9ae9/lathermail-0.4.1.tar.gz" } ] }