{ "info": { "author": "tintinweb", "author_email": "tintinweb@oststrom.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2.7" ], "description": "smtpd-tls\r\n=========\r\n\r\nAn extension to the python 2.x smtpd standard library implementing\r\nimplicit/explicit (STARTTLS) SSL/TLS support\r\n\r\n- added STARTTLS handling\r\n- added implicit tls\r\n\r\njust pass a configured ssl.context (certs, keys, protocols, auth, ...)\r\nto smtpd-tls.SMTPServer()\r\n\r\noriginal smtpd pydoc: https://docs.python.org/2/library/smtpd.html\r\n\r\n**Requires Python 2.7 or higher**\r\n\r\nInstall\r\n=======\r\n\r\nfrom pip\r\n\r\n::\r\n\r\n pip install smtpd-tls\r\n\r\nfrom source\r\n\r\n::\r\n\r\n python setup.py install\r\n\r\nverify:\r\n\r\n::\r\n\r\n #> python -c \"import smtpd_tls; print smtpd_tls\"\r\n #> python -m smtpd_tls --help\r\n\r\nExample\r\n=======\r\n\r\nSTARTTLS via smtp port 25:\r\n\r\n::\r\n\r\n #> python -m smtpd_tls --debug -c DebuggingServer --starttls --keyfile=../server.pem 0.0.0.0:25\r\n DebuggingServer started at Thu Feb 4 16:57:06 2016\r\n Local addr: ('0.0.0.0', 25)\r\n Remote addr:('mail.somehost.com', 25)\r\n TLS Mode: explicit (plaintext until STARTTLS)\r\n TLS Context: \r\n Incoming connection from ('192.168.139.1', 39983)\r\n Peer: ('192.168.139.1', 39983)\r\n Data: 'ehlo [192.168.139.1]'\r\n Data: 'STARTTLS'\r\n Peer: ('192.168.139.1', 39983) - negotiated TLS: ('ECDHE-RSA-AES256-GCM-SHA384', 'TLSv1/SSLv3', 256)\r\n Data: 'ehlo [192.168.139.1]'\r\n Data: 'mail FROM:'\r\n ===> MAIL FROM:\r\n sender: sender@example.com\r\n Data: 'rcpt TO:'\r\n ===> RCPT TO:\r\n recips: ['user@example.com']\r\n Data: 'data'\r\n Data: \"From: sender@example.com\\r\\nTo: user@example.com\\r\\nSubject: Hello!\\r\\n\\r\\nThis message was sent with Python's smtplib.\"\r\n ---------- MESSAGE FOLLOWS ----------\r\n From: sender@example.com\r\n To: user@example.com\r\n Subject: Hello!\r\n X-Peer: 192.168.139.1\r\n\r\n This message was sent with Python's smtplib.\r\n ------------ END MESSAGE ------------\r\n Data: 'quit'\r\n\r\nImplicit TLS via smtp port 465:\r\n\r\n::\r\n\r\n #> python -m smtpd_tls --debug -c DebuggingServer --tls --keyfile=../server.pem 0.0.0.0:465\r\n DebuggingServer started at Thu Feb 4 17:00:53 2016\r\n Local addr: ('0.0.0.0', 465)\r\n Remote addr:('mail.somehost.com', 25)\r\n TLS Mode: implicit (encrypted from the beginning)\r\n TLS Context: \r\n Incoming connection from ('192.168.139.1', 40028)\r\n Peer: ('192.168.139.1', 40028) - negotiated TLS: ('ECDHE-RSA-AES256-GCM-SHA384', 'TLSv1/SSLv3', 256)\r\n Peer: ('192.168.139.1', 40028)\r\n Data: 'ehlo [192.168.139.1]'\r\n Data: 'mail FROM:'\r\n ===> MAIL FROM:\r\n sender: sender@example.com\r\n Data: 'rcpt TO:'\r\n ===> RCPT TO:\r\n recips: ['user@example.com']\r\n Data: 'data'\r\n Data: \"From: sender@example.com\\r\\nTo: user@example.com\\r\\nSubject: Hello!\\r\\n\\r\\nThis message was sent with Python's smtplib.\"\r\n ---------- MESSAGE FOLLOWS ----------\r\n From: sender@example.com\r\n To: user@example.com\r\n Subject: Hello!\r\n X-Peer: 192.168.139.1\r\n\r\n This message was sent with Python's smtplib.\r\n ------------ END MESSAGE ------------\r\n Data: 'quit'", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/tintinweb/python-smtpd-tls/tarball/v0.1", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/tintinweb/python-smtpd-tls", "keywords": "smtpd,starttls,tls,ssl", "license": "UNKNOWN", "maintainer": "", "maintainer_email": "", "name": "smtpd-tls", "package_url": "https://pypi.org/project/smtpd-tls/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/smtpd-tls/", "project_urls": { "Download": "https://github.com/tintinweb/python-smtpd-tls/tarball/v0.1", "Homepage": "https://github.com/tintinweb/python-smtpd-tls" }, "release_url": "https://pypi.org/project/smtpd-tls/0.1/", "requires_dist": null, "requires_python": null, "summary": "An extension to the standard python 2.x smtpd library implementing implicit/explicit SSL/TLS/STARTTLS", "version": "0.1" }, "last_serial": 1940678, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "783176bcd2a2063083761d3cc8de9d7c", "sha256": "b406b4364c3ea3a77b71179b3e217de34414893bcad65294bc52ca2cd6fd5f85" }, "downloads": -1, "filename": "smtpd-tls-0.1.tar.gz", "has_sig": false, "md5_digest": "783176bcd2a2063083761d3cc8de9d7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6067, "upload_time": "2016-02-04T22:36:11", "url": "https://files.pythonhosted.org/packages/1c/42/4c3f3625edcae5432c84b38fe8bab095c8a1ed95607093c5fb2706f4b81d/smtpd-tls-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "783176bcd2a2063083761d3cc8de9d7c", "sha256": "b406b4364c3ea3a77b71179b3e217de34414893bcad65294bc52ca2cd6fd5f85" }, "downloads": -1, "filename": "smtpd-tls-0.1.tar.gz", "has_sig": false, "md5_digest": "783176bcd2a2063083761d3cc8de9d7c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6067, "upload_time": "2016-02-04T22:36:11", "url": "https://files.pythonhosted.org/packages/1c/42/4c3f3625edcae5432c84b38fe8bab095c8a1ed95607093c5fb2706f4b81d/smtpd-tls-0.1.tar.gz" } ] }