{ "info": { "author": "Meng Zhuo", "author_email": "mengzhuo1203@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Communications :: Email", "Topic :: Communications :: Email :: Mail Transport Agents" ], "description": "gsmtpd\n======\n\n\n.. image:: https://travis-ci.org/34nm/gsmtpd.svg?branch=master\n\nSMTP servers impletement base on Gevent\n\nInstall\n----------\n\n`pip install gsmtpd`\n\nUsage\n---------\n\nBasically gsmtpd is ported from Python standard lib *smtpd*,\nyou can it check from Doc_\n\nhowever there is only one difference, you should add monkey patch of gevent\n\n.. code-block:: python\n\n from gevent import monkey\n monkey.patch_all()\n\nExample\n-----------------\n\n.. code-block:: python\n \n from gevent import monkey \n monkey.patch_all()\n from gsmtpd.server import SMTPServer\n\n class DebuggingServer(SMTPServer):\n # Do something with the gathered message\n def process_message(self, peer, mailfrom, rcpttos, data):\n inheaders = 1\n lines = data.split('\\n')\n print '---------- MESSAGE FOLLOWS ----------'\n for line in lines:\n # headers first\n if inheaders and not line:\n print 'X-Peer:', peer[0]\n inheaders = 0\n print line\n print '------------ END MESSAGE ------------'\n \n if __name__ == \"__main__\":\n \n server = DebuggingServer()\n server.serve_forever()\n\nPerformance\n---------------\n\nThe charts below shows gsmtpd vs asyncore based smtpd in Python standrary lib.\n\n.. note::\n\n Response per second = 0 means the program is crashed or refuse to connect\n\n\n\n.. figure:: https://raw.githubusercontent.com/34nm/gsmtpd/master/helo_chart.png\n :scale: 100%\n\n.. figure:: https://raw.githubusercontent.com/34nm/gsmtpd/master/mail_chart.png\n :scale: 100%\n\n\n.. _Doc: http://gsmtpd.readthedocs.org", "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/34nm/gsmtpd", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "gsmtpd", "package_url": "https://pypi.org/project/gsmtpd/", "platform": "any", "project_url": "https://pypi.org/project/gsmtpd/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/34nm/gsmtpd" }, "release_url": "https://pypi.org/project/gsmtpd/0.2/", "requires_dist": null, "requires_python": null, "summary": "A smtpd server impletement based on Gevent", "version": "0.2" }, "last_serial": 1356916, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "10235e9cb65ea24e1538e36fdc2dd988", "sha256": "3f6b351af2cdfeacd8e75a26abaa17cd47a62905a0dc0f5e65851317665160ce" }, "downloads": -1, "filename": "gsmtpd-0.1.tar.gz", "has_sig": false, "md5_digest": "10235e9cb65ea24e1538e36fdc2dd988", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7063, "upload_time": "2014-07-24T06:50:21", "url": "https://files.pythonhosted.org/packages/d4/8c/b2d5e8b322c9978156cf1f6da9a212e03e7e0c7a8fd162c64a7cce35095a/gsmtpd-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "1c6a82bf6ac592b93144f145912e51cf", "sha256": "50eebca74f2529668a55fc6529d83165b55b946c579af91d76f77642bcc8582c" }, "downloads": -1, "filename": "gsmtpd-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1c6a82bf6ac592b93144f145912e51cf", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7096, "upload_time": "2014-07-24T07:50:18", "url": "https://files.pythonhosted.org/packages/84/ad/b6d272bb3ae506a6a945f7fb30fdc1a5c57f6d009750f90c2e4d6419a019/gsmtpd-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e43bfe7f0aeb6ba96b7b925cfa07c688", "sha256": "b163594a44f82d9b246652dfda037f24c226f382d3029f1991480e85159cd1e0" }, "downloads": -1, "filename": "gsmtpd-0.1.2.tar.gz", "has_sig": false, "md5_digest": "e43bfe7f0aeb6ba96b7b925cfa07c688", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7045, "upload_time": "2014-07-24T12:54:19", "url": "https://files.pythonhosted.org/packages/7f/c1/dd4c906465b33ce48573684ffe26f60684c0a5c612c9e5b648f084eb76ff/gsmtpd-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "71ac3bf612794ec9280f323f1ee1faff", "sha256": "3f2b1d9fed542ace1a5cb48ee4f9578e84d97db609d1dd0dc7e9120be1d8fd67" }, "downloads": -1, "filename": "gsmtpd-0.1.3.tar.gz", "has_sig": false, "md5_digest": "71ac3bf612794ec9280f323f1ee1faff", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7033, "upload_time": "2014-07-24T13:30:07", "url": "https://files.pythonhosted.org/packages/1b/8e/fac0734445396b23c2bdf0025f0fab7bac8dd8b811873540b01052698b5a/gsmtpd-0.1.3.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "4f138b1f8c7a6933cea34ba39789a661", "sha256": "953c2cf7554774bfd6852b1602b1f696a1747876314ca7f34ea6d9a3aca8d76d" }, "downloads": -1, "filename": "gsmtpd-0.1.5.tar.gz", "has_sig": false, "md5_digest": "4f138b1f8c7a6933cea34ba39789a661", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7157, "upload_time": "2014-07-24T14:39:24", "url": "https://files.pythonhosted.org/packages/04/a0/9d383f59752beb208664f0558e53f7ef4621bd7ef36aa2cee243d213c684/gsmtpd-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "07d317eb80409f00988c87a40f2d2492", "sha256": "44659d9a132d493ba262506ced21c416de64a8912ec39a84a919ab1b75626262" }, "downloads": -1, "filename": "gsmtpd-0.1.6.tar.gz", "has_sig": false, "md5_digest": "07d317eb80409f00988c87a40f2d2492", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7244, "upload_time": "2014-07-24T15:09:07", "url": "https://files.pythonhosted.org/packages/22/93/7bdc6faee98c05e3331220f4bcc2d3b4014ddeb2216329875c3247154840/gsmtpd-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "335ff23e5fcf5ac42de59b7926d46265", "sha256": "65838c58bf237f73378f455c104ae10cb4044d7a710914e38737ec26e8d12e5a" }, "downloads": -1, "filename": "gsmtpd-0.1.7.tar.gz", "has_sig": false, "md5_digest": "335ff23e5fcf5ac42de59b7926d46265", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7255, "upload_time": "2014-07-27T19:40:19", "url": "https://files.pythonhosted.org/packages/7f/f6/3c4bb66bc922ad64307ae72a82d6c8434ec5fe39cfa49829dd28ae2450fc/gsmtpd-0.1.7.tar.gz" } ], "0.1.8": [ { "comment_text": "", "digests": { "md5": "1cbfe213cc6d35b8f716a5a384f1a340", "sha256": "050daddcbc528dab4ba4136ed94635af722bce7943ad0bf7a9cf1645f4d65295" }, "downloads": -1, "filename": "gsmtpd-0.1.8.tar.gz", "has_sig": false, "md5_digest": "1cbfe213cc6d35b8f716a5a384f1a340", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7360, "upload_time": "2014-07-28T05:58:55", "url": "https://files.pythonhosted.org/packages/a3/8e/d0b21628e3e8a179feb1fb8ef534a1c881290d3670beff66980a06a6879f/gsmtpd-0.1.8.tar.gz" } ], "0.1.9": [ { "comment_text": "", "digests": { "md5": "4cb09d5cefacb304c6ca334372ddbb8e", "sha256": "22cbcd0cd5a59e8292cadccb3a7b58553b5dfdc5baad5e509ef2deaad7500bd6" }, "downloads": -1, "filename": "gsmtpd-0.1.9.tar.gz", "has_sig": false, "md5_digest": "4cb09d5cefacb304c6ca334372ddbb8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9505, "upload_time": "2014-07-30T06:01:11", "url": "https://files.pythonhosted.org/packages/63/47/717cc09b833864c2af5c7e56da6438e7159a3f96029c8fcc30036756e266/gsmtpd-0.1.9.tar.gz" } ], "0.1.9.1": [ { "comment_text": "", "digests": { "md5": "105e2f8d09610b781ec590931c170b63", "sha256": "7fddd001d68a3033022a5a28a069e3b78b457f2d5f5ab6c4f494477b087002c5" }, "downloads": -1, "filename": "gsmtpd-0.1.9.1.tar.gz", "has_sig": false, "md5_digest": "105e2f8d09610b781ec590931c170b63", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9496, "upload_time": "2014-07-30T07:01:09", "url": "https://files.pythonhosted.org/packages/72/04/14292927a8b3aa1fac96d65f225d297a0e49f9b9e75ce2f054b047812e36/gsmtpd-0.1.9.1.tar.gz" } ], "0.1.9.2": [ { "comment_text": "", "digests": { "md5": "ae59a6251d487c540e2b7dafc96628d0", "sha256": "5c5abe84d420116dcd8b628bb4d1ea739dac27070c8c3135b6b8749dfd34cc41" }, "downloads": -1, "filename": "gsmtpd-0.1.9.2.tar.gz", "has_sig": false, "md5_digest": "ae59a6251d487c540e2b7dafc96628d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9501, "upload_time": "2014-09-04T08:45:53", "url": "https://files.pythonhosted.org/packages/14/0f/31e17f24fc768b4f5b97694e1b02be1ff5ce54abb74771eb36983a32525e/gsmtpd-0.1.9.2.tar.gz" } ], "0.1.9.3": [ { "comment_text": "", "digests": { "md5": "8d40df1a66416768c1c5682d523a1719", "sha256": "2e6241897243c9c3aaae66ce5648e16437cc8ce4bbdfaf2a33147c8ac37b834c" }, "downloads": -1, "filename": "gsmtpd-0.1.9.3.tar.gz", "has_sig": false, "md5_digest": "8d40df1a66416768c1c5682d523a1719", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9504, "upload_time": "2014-09-04T08:59:38", "url": "https://files.pythonhosted.org/packages/4c/10/df86140ebde145f9f84e88ecb1250e4e13e9f1ac9040620cb96828bc6dcc/gsmtpd-0.1.9.3.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "0db1c929c67e84cbae75cb02a33eb3bd", "sha256": "261d4dabd018d89622373f941db7216731019d736f6f6e296e0e4d71a2191eca" }, "downloads": -1, "filename": "gsmtpd-0.2.tar.gz", "has_sig": false, "md5_digest": "0db1c929c67e84cbae75cb02a33eb3bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9561, "upload_time": "2014-12-22T08:23:16", "url": "https://files.pythonhosted.org/packages/27/37/dd7cae474a8334d1d43903696d9a5777b85e891e14a8873d060356331133/gsmtpd-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "0db1c929c67e84cbae75cb02a33eb3bd", "sha256": "261d4dabd018d89622373f941db7216731019d736f6f6e296e0e4d71a2191eca" }, "downloads": -1, "filename": "gsmtpd-0.2.tar.gz", "has_sig": false, "md5_digest": "0db1c929c67e84cbae75cb02a33eb3bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9561, "upload_time": "2014-12-22T08:23:16", "url": "https://files.pythonhosted.org/packages/27/37/dd7cae474a8334d1d43903696d9a5777b85e891e14a8873d060356331133/gsmtpd-0.2.tar.gz" } ] }