{ "info": { "author": "Simon Davy", "author_email": "simon.davy@canonical.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Console", "Framework :: Twisted", "Intended Audience :: Developers", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: POSIX", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Communications :: Email", "Topic :: Communications :: Email :: Mail Transport Agents", "Topic :: Communications :: Email :: Post-Office :: IMAP", "Topic :: Software Development :: Testing" ], "description": "Localmail\n=========\n\nFor local people.\n\nLocalmail is an SMTP and IMAP server that stores all messages into a single\nin-memory mailbox. It is designed to be used to speed up running test suites on\nsystems that send email, such as new account sign up emails with confirmation\ncodes. It can also be used to test SMTP/IMAP client code.\n\nFeatures:\n\n * Fast and robust IMAP/SMTP implementations, including multipart\n messages and unicode support.\n\n * Includes simple HTTP interface for reading messages, which is useful for\n checking html emails.\n\n * Compatible with python's stdlib client, plus clients like mutt and\n thunderbird.\n\n * Authentication is supported but completely ignored, all message go in\n single mailbox.\n\n * Messages not persisted by default, and will be lost on shutdown.\n Optionally, you can log messages to disk in mbox format.\n\nMissing features/TODO:\n\n * SSL support\n\nWARNING: not a real SMTP/IMAP server - not for production usage.\n\n\nRunning localmail\n-----------------\n\n.. code-block:: bash\n\n twistd localmail\n\nThis will run localmail in the background, SMTP on port 2025 and IMAP on 2143,\nIt will log to a file ./twistd.log. Use the -n option if you want to run in\nthe foreground, like so.\n\n.. code-block:: bash\n\n twistd -n localmail\n\n\nYou can pass in arguments to control parameters.\n\n.. code-block:: bash\n\n twistd localmail --imap --smtp --http --file localmail.mbox\n\n\nYou can have localmail use random ports if you like. The port numbers will be logged.\nTODO: enable writing random port numbers to a file.\n\n.. code-block:: bash\n\n twisted -n localmail --random\n\n\nEmbedding\n---------\n\nIf you want to embed localmail in another non-twisted program, such as test\nrunner, do the following.\n\n.. code-block:: python\n\n import threading\n import localmail\n\n thread = threading.Thread(\n target=localmail.run,\n args=(2025, 2143, 8880, 'localmail.mbox')\n )\n thread.start()\n\n ...\n\n localmail.shutdown_thread(thread)\n\nThis will run the twisted reactor in a separate thread, and shut it down on\nexit.\n\nIf you want to use random ports, you can pass a callback that will have the\nports the service is listening on.\n\n.. code-block:: python\n\n import threading\n import localmail\n\n def report(smtp, imap, http):\n \"\"\"do stuff with ports\"\"\"\n\n thread = threading.Thread(\n target=localmail.run,\n args=(0, 0, 0, None, report)\n )\n thread.start()\n\n\n\n\n.. :changelog:\n\nHistory\n=======\n\n0.4 (2015-08-14)\n----------------\n\n * support for using random port numbers\n * available as a universal wheel, general packaging improvements\n * Simple HTTP interface for browsing mail (requires jinja2)\n * Support writing to mbox file\n * Fixed date to work with mutt, example muttrc included in package.\n\n\n0.3 (2013-05-24)\n----------------\n\n * Multipart message support [via Ed Jannoo]\n * IMAP UID support\n * Support python 2.6, 2.7 and pypy, tested via tox\n\n\n0.2 (2012-11-13)\n----------------\n\n * Initial public release\n * Basic SMTP/IMAP server\n\n\n\nCredits\n=======\n\n\u201clocalmail\u201d is written and maintained by Simon Davy\n\n\nContributors\n------------\n\nThe following people contributed directly or indirectly to this project:\n\n- `Ed Jannoo `\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://launchpad.net/localmail", "keywords": "", "license": "GPLv3", "maintainer": "", "maintainer_email": "", "name": "localmail", "package_url": "https://pypi.org/project/localmail/", "platform": "", "project_url": "https://pypi.org/project/localmail/", "project_urls": { "Homepage": "https://launchpad.net/localmail" }, "release_url": "https://pypi.org/project/localmail/0.5.0/", "requires_dist": [ "Twisted (>=11.0.0)", "jinja2 (>=2.0.0)" ], "requires_python": "", "summary": "Test SMTP/IMAP server for local integration testing", "version": "0.5.0" }, "last_serial": 4103733, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "2a408b4b1aa3a3debe6b6ff2b4be6ca5", "sha256": "46df0b805162e547ec0637ba26884120999e16e123289f173cbf5165ec81e491" }, "downloads": -1, "filename": "localmail-0.1.tar.gz", "has_sig": false, "md5_digest": "2a408b4b1aa3a3debe6b6ff2b4be6ca5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6813, "upload_time": "2012-11-13T11:12:12", "url": "https://files.pythonhosted.org/packages/76/f2/eb5722845a887d1aa75d8363ee2fc19b76c4364901949d4cdfeb25ff730b/localmail-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "a183089133dd93fb9ff5bd065cc69a97", "sha256": "0dd8d27e3fdd571376a433cb4a499d9d4c05404eeb3e2326fd5685f94b578b7c" }, "downloads": -1, "filename": "localmail-0.2.tar.gz", "has_sig": false, "md5_digest": "a183089133dd93fb9ff5bd065cc69a97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7891, "upload_time": "2012-11-13T14:46:03", "url": "https://files.pythonhosted.org/packages/58/b1/5196c13fac47bc0b5b96246069854f71e46eb35468a4bd2bcbb4813b6d0e/localmail-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "bea9731645cb7e28c0dae95afeab533f", "sha256": "fa032b76e739855b3c3f2ddb4586d1410e29a9406c57b3b7fc738536d7d60778" }, "downloads": -1, "filename": "localmail-0.3.tar.gz", "has_sig": false, "md5_digest": "bea9731645cb7e28c0dae95afeab533f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8705, "upload_time": "2013-05-25T19:01:08", "url": "https://files.pythonhosted.org/packages/fb/c6/144194a0ec2f42bc1d2fee32209e6deaf37cea7c406e92892db86bced141/localmail-0.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "9980d46513c946bc5ac6e546aea7a679", "sha256": "9cc847648e3aab48e0b79642032387299afe2a3006499a82ef17a25fea85f713" }, "downloads": -1, "filename": "localmail-0.3.0-py2.7.egg", "has_sig": false, "md5_digest": "9980d46513c946bc5ac6e546aea7a679", "packagetype": "bdist_egg", "python_version": "2.7", "requires_python": null, "size": 24313, "upload_time": "2015-10-14T09:20:56", "url": "https://files.pythonhosted.org/packages/72/c3/c470ec8381f0823b677b628c29862d6e5ed1ec35bb3dabf1787b9db22001/localmail-0.3.0-py2.7.egg" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "f4b2a22d951e598577a2c5bef8b554a2", "sha256": "cbbf0b9ad3e1cf749c20343225898428d82557490cb8fe3a43ce6b3aa85cbabf" }, "downloads": -1, "filename": "localmail-0.4.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "f4b2a22d951e598577a2c5bef8b554a2", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15502, "upload_time": "2015-10-14T09:20:52", "url": "https://files.pythonhosted.org/packages/1a/bc/a50ce38f6bd09daf1e5965bb1738ea4b25082aaaf0ecb5aee1bac5cb482c/localmail-0.4.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0cabcf6fd694828f855935cd121e22a7", "sha256": "161ce75eef93a061992f65f8bab97eb376545666478d4c00166b66c69dbc680d" }, "downloads": -1, "filename": "localmail-0.4.0.tar.gz", "has_sig": false, "md5_digest": "0cabcf6fd694828f855935cd121e22a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24580, "upload_time": "2015-10-14T09:21:00", "url": "https://files.pythonhosted.org/packages/4c/1e/6bb2ba9a406436fc75a7c811e4aa69a44968f0bae81342cd3cf6b45f6eea/localmail-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "63057d7c35c7d9b57b46120b14790c86", "sha256": "b27d0b00c8557f2a4430de87713006ad7b90f679888b210f811fa9603434ceb5" }, "downloads": -1, "filename": "localmail-0.4.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "63057d7c35c7d9b57b46120b14790c86", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 15497, "upload_time": "2015-10-14T13:29:18", "url": "https://files.pythonhosted.org/packages/bd/d2/57fd2fc9cd15c6d430cf274c06b15a49d55a1740f64d96fe5c808b2c7058/localmail-0.4.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "41b53fe1518ae1ec24ab4ff0f3147be8", "sha256": "c8d7e19f00bab47cd34609a4d5a175832d02b4d65bb473da588309a2dafbeadd" }, "downloads": -1, "filename": "localmail-0.4.1.tar.gz", "has_sig": false, "md5_digest": "41b53fe1518ae1ec24ab4ff0f3147be8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24589, "upload_time": "2015-10-14T13:29:22", "url": "https://files.pythonhosted.org/packages/66/cb/bbc86f4110b290ceafeb7cdaf8cdd67834993a0d019fd96f25dda42d4c00/localmail-0.4.1.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "68df10e78c8d0ceb92dcbe815644fb50", "sha256": "7050ac0319d6e3126ebf3a49de67e5a1115d9809eb7efd84886de3ce7d35f359" }, "downloads": -1, "filename": "localmail-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68df10e78c8d0ceb92dcbe815644fb50", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13739, "upload_time": "2018-07-26T09:43:08", "url": "https://files.pythonhosted.org/packages/86/81/072be46d0327bcc050c99fb2b3a8cfa3bf6e2706c865a821734e0d7bea3f/localmail-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c905d268b566b14574a185574d5fad55", "sha256": "63ad0219e9772a39970682a126ccb34ae8760983b8a90d7ccf877ba97d27d424" }, "downloads": -1, "filename": "localmail-0.5.0.tar.gz", "has_sig": false, "md5_digest": "c905d268b566b14574a185574d5fad55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25931, "upload_time": "2018-07-26T09:43:09", "url": "https://files.pythonhosted.org/packages/94/7f/263eea21591438afe38bf0ae77054e06591b61b56e94865aeb7d61e179c9/localmail-0.5.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "68df10e78c8d0ceb92dcbe815644fb50", "sha256": "7050ac0319d6e3126ebf3a49de67e5a1115d9809eb7efd84886de3ce7d35f359" }, "downloads": -1, "filename": "localmail-0.5.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68df10e78c8d0ceb92dcbe815644fb50", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 13739, "upload_time": "2018-07-26T09:43:08", "url": "https://files.pythonhosted.org/packages/86/81/072be46d0327bcc050c99fb2b3a8cfa3bf6e2706c865a821734e0d7bea3f/localmail-0.5.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c905d268b566b14574a185574d5fad55", "sha256": "63ad0219e9772a39970682a126ccb34ae8760983b8a90d7ccf877ba97d27d424" }, "downloads": -1, "filename": "localmail-0.5.0.tar.gz", "has_sig": false, "md5_digest": "c905d268b566b14574a185574d5fad55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25931, "upload_time": "2018-07-26T09:43:09", "url": "https://files.pythonhosted.org/packages/94/7f/263eea21591438afe38bf0ae77054e06591b61b56e94865aeb7d61e179c9/localmail-0.5.0.tar.gz" } ] }