{ "info": { "author": "Maurits van Rees", "author_email": "maurits@vanrees.org", "bugtrack_url": null, "classifiers": [ "Framework :: Plone", "Framework :: Plone :: 4.3", "Programming Language :: Python", "Programming Language :: Python :: 2.7" ], "description": "Introduction\n============\n\nThis package defines a browser view ``@@poimail`` that reads an email\nfrom the request and creates an issue for that or adds a response to\nan issue. It is a bridge between smtp2zope_ and `Products.Poi`_.\n\n.. _smtp2zope: http://pypi.python.org/pypi/smtp2zope\n.. _`Products.Poi`: http://pypi.python.org/pypi/Products.Poi\n\n\nCompatibility\n-------------\n\npoi.receivemail has been tested with Plone 4.3 and Poi 2.3.\nSince version 3 it uses ``plone.api``.\nFor earlier versions, please use poi.receivemail 2.x.\n\n\nUsage\n-----\n\nA standard setup would look like this:\n\n- You have a Plone Site at http://example.org/.\n\n- This Plone Site has ``Products.Poi`` and ``poi.receivemail`` in its\n eggs.\n\n- The site has a Poi tracker at http://example.org/tracker.\n\n- You have installed ``smtp2zope`` on the same machine (possibly in\n the same buildout, but a virtualenv is fine too) and its script is\n available at ``/path/to/smtp2zope``.\n\n- You have a mail server on this machine that has an alias like this::\n\n helpdesk@example.org \"|/path/to/smtp2zope http://example.org/tracker/@@poimail\"\n\n or this::\n\n helpdesk@example.org \"|/path/to/smtp2zope http://admin:secret@example.org/tracker/@@poimail 1000000\"\n\n- Now when someone sends an email to helpdesk@example.org a new issue\n is created in the tracker. When the subject of the email matches an\n existing issue, it is added as response to that issue.\n\n- When a user is found in the Plone Site that matches the sender\n address, we pretend to be that user when creating the issue or\n response. Otherwise, the Creator is anonymous or is the user that\n is identified through basic authentication in the url that is passed\n as argument to ``smtp2zope``.\n\nChangelog\n=========\n\n3.0.1 (2017-11-13)\n------------------\n\n- Create issue with proper id directly.\n Renaming can give hard to debug permission problems\n in combination with our adopt_user and adopt_roles.\n [maurits]\n\n\n3.0.0 (2017-10-31)\n------------------\n\n- Store attachments as blobs. For example the original email message. [maurits]\n\n- Drop support for Python 2.4, because we use ``plone.api``.\n Officially drop support for 2.6 too, and for Plone 4.2 and earlier, but it may still work.\n [maurits]\n\n- Use plone.api to adopt a different user and roles.\n This is cleaner, and should avoid problems where the faked user did not have a user id.\n [maurits]\n\n\n2.0.1 (2017-08-18)\n------------------\n\n- Log the sender and subject at info level.\n [maurits]\n\n- Caught several cases where the created issue was invalid.\n This caused a workflow exception, which means the issue was never added.\n This could happen when an html mail was received and the mime type was not allowed in the details field.\n Now we convert the mail text to the default issue mime type.\n If the issue is still invalid, we catch the workflow exception and create the issue anyway,\n because there is no easy way of signalling this to the sender.\n The issue then has the ``new`` state, which may not be visible in the Poi user interface though.\n [maurits]\n\n\n2.0 (2017-01-02)\n----------------\n\n- Check ``NEEDED_PERMISSIONS`` before faking a manager. If a user\n already has the needed permissions, there is no need to fake a\n manager. [maurits]\n\n- Fake a ``TrackerManager`` instead of ``Manager`` when possible.\n This role was introduced in Products.Poi 2.2 (Plone 4). This is\n done when ``FAKE_MANAGER`` is true, which is the default. This only\n happens for specified IP-addresses. [maurits]\n\n- Fixed issue creation for Plone 4. Posting an issue would fail\n because no ``post`` transition was available. This is because in\n Plone 4 this happens automatically on the\n ``IObjectInitializedEvent``. Now we only do the transition if the\n review state is still ``new``. [maurits]\n\n\n1.13 (2016-12-09)\n-----------------\n\n- Fixed package: don't use symlinks. [maurits]\n\n\n1.12 (2016-12-09)\n-----------------\n\n- Do more decoding. Each part can have its own encoding. We should\n use those to make something readable. [maurits]\n\n- Decode from quoted printable in a few cases. [maurits]\n\n\n1.11 (2012-10-14)\n-----------------\n\n- Moved to https://github.com/collective/poi.receivemail\n [maurits]\n\n\n1.10 (2011-12-14)\n-----------------\n\n- Fixed wrong match for issue by subject. While searching for #123 in\n the subject line we would match 123 at the beginning of the line as\n well, which may give wrong matches.\n [maurits]\n\n\n1.9 (2011-11-28)\n----------------\n\n- Use the body charset to decode the body text and then encode it as\n utf-8 before storing it.\n [maurits]\n\n- Avoid a unicode error when there is no body.\n [maurits]\n\n- Optionally add attachments from the e-mail. We look for binary\n attachments. These are added as separate responses, as you can only\n add one attachment per issue or response. In config.py we have\n added a setting ADD_ATTACHMENTS for this (default True) to make it a\n bit easier to switch this off in case of problems or when you do not\n want it.\n [maurits]\n\n- Fixed handling multipart messages that have parts that themselves\n are multipart.\n [maurits]\n\n- When there is an empty or missing Subject line, use '[no subject]'\n as title. We do not try to match such a mail to a previous issue\n but always create a new one.\n [maurits]\n\n\n1.8 (2011-11-10)\n----------------\n\n- Set more fields explicitly, as the createObjectByType call only sets\n some of them.\n [maurits]\n\n\n1.7 (2011-11-09)\n----------------\n\n- When a subject (keyword, category) is given, set that explicitly.\n [maurits]\n\n- In ``get_addresses`` allow getting addresses from headers other than\n To and From as well.\n [maurits]\n\n\n1.6 (2011-09-06)\n----------------\n\n- Prevent issues from being automatically renamed after they are\n edited.\n [maurits]\n\n- Prevent some more lower-case email address comparison problems.\n [maurits]\n\n\n1.5 (2011-06-22)\n----------------\n\n- Make e-mail from address lower-case to prevent search problems with ldap\n users. [jladage]\n\n\n1.4 (2011-06-14)\n----------------\n\n- When searching PAS for a user by email address, strip off any white\n space (like possibly '\\r\\n' in ldap) from the returned addresses, to\n avoid non-matching for silly reasons.\n [maurits]\n\n- Moved all options to a new config.py file.\n [maurits]\n\n- Add option ADVANCED_SUBJECT_MATCH. Default is False: we only check\n for '#123' in the Subject line, to avoid matching overly generic\n Subject lines like 'Hi' or 'Problem'. To get back the previous\n behavior, set this to True (in a patch in your own code, likely).\n [maurits]\n\n- If the subject is empty, do not try to find a matching issue, as all\n issues will match.\n [maurits]\n\n\n1.3 (2011-05-11)\n----------------\n\n- Added FAKE_MANAGER option (default is True) to determine if we\n should fake a Manager role to be sure that a post succeeds.\n [maurits]\n\n- While switching users: if 'email' is not in the properties (say:\n ldap), we can get far too many results; so we do a double check.\n [maurits]\n\n\n1.2 (2011-05-09)\n----------------\n\n- Ignore mails with the email_from_address as From address, as this\n too easily means that a message sent by Poi ends up being added as a\n reply on an issue that we have just created.\n [maurits]\n\n\n1.1 (2011-05-05)\n----------------\n\n- Handle encoded subject lines better.\n [maurits]\n\n\n1.0 (2011-05-05)\n----------------\n\n- Initial release", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/collective/poi.receivemail", "keywords": "poi issue tracker mail", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "poi.receivemail", "package_url": "https://pypi.org/project/poi.receivemail/", "platform": "", "project_url": "https://pypi.org/project/poi.receivemail/", "project_urls": { "Homepage": "https://github.com/collective/poi.receivemail" }, "release_url": "https://pypi.org/project/poi.receivemail/3.0.1/", "requires_dist": null, "requires_python": "", "summary": "Receive email in the Poi issue tracker", "version": "3.0.1" }, "last_serial": 3329583, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "804c05355cd4ae7d34a96b7889286bea", "sha256": "5fcfa5d9040a66f2ae7d7914ebf6ad82b132fccde607fada00ef7f0f01960c72" }, "downloads": -1, "filename": "poi.receivemail-1.0.zip", "has_sig": false, "md5_digest": "804c05355cd4ae7d34a96b7889286bea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23341, "upload_time": "2011-05-05T03:27:51", "url": "https://files.pythonhosted.org/packages/f1/30/b2215af362108153a6a120524cd650d4028704fed7e564603f4f399255f2/poi.receivemail-1.0.zip" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "577e404425b4d54dce269320b45cccf0", "sha256": "b565c78a9e374532810ce5790193f24f9dec9797096a5a897d60a2220b016b1c" }, "downloads": -1, "filename": "poi.receivemail-1.1.zip", "has_sig": false, "md5_digest": "577e404425b4d54dce269320b45cccf0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23530, "upload_time": "2011-05-05T17:18:58", "url": "https://files.pythonhosted.org/packages/93/6a/7babbd90a3b8ed8a6bb8f0bce2597b723bbe002d8e33ea0b67c433ccd3e2/poi.receivemail-1.1.zip" } ], "1.10": [ { "comment_text": "", "digests": { "md5": "dd8dbe4c54496278fc25c5aa37482890", "sha256": "747e1b1d52ea0b56cf2e32ea2e23fc9f208b22050d72502cc019f90b5f990910" }, "downloads": -1, "filename": "poi.receivemail-1.10.tar.gz", "has_sig": false, "md5_digest": "dd8dbe4c54496278fc25c5aa37482890", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20314, "upload_time": "2011-12-14T14:36:01", "url": "https://files.pythonhosted.org/packages/ca/70/fcf841f399b438da15582c4b1ebd811468d43d1654bccff3da95999bb0dc/poi.receivemail-1.10.tar.gz" } ], "1.11": [ { "comment_text": "", "digests": { "md5": "bfa6cdd376621109244b5920801c9446", "sha256": "7a49edb5ba9036343c344c8e36b737dfb97e24d09e137b8fbb14d54f0a0cff14" }, "downloads": -1, "filename": "poi.receivemail-1.11.zip", "has_sig": false, "md5_digest": "bfa6cdd376621109244b5920801c9446", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31062, "upload_time": "2012-10-14T00:39:35", "url": "https://files.pythonhosted.org/packages/0a/f4/59a87b0cceed4595bb59baeb197291219c3a3e6c747fd1b9b0f8dee85fce/poi.receivemail-1.11.zip" } ], "1.12": [ { "comment_text": "", "digests": { "md5": "947a857c085d4d7795c19691aecd5416", "sha256": "c3f345bc244031baed29844e6c14b1c9d3c95854e84aa6dac8615f93c9ab0c4b" }, "downloads": -1, "filename": "poi.receivemail-1.12.tar.gz", "has_sig": false, "md5_digest": "947a857c085d4d7795c19691aecd5416", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24604, "upload_time": "2016-12-09T18:51:52", "url": "https://files.pythonhosted.org/packages/6d/b5/b267dc749c7babcff510921e46eb42f7458939e6f3dcabd2e82c3e7979ba/poi.receivemail-1.12.tar.gz" } ], "1.13": [ { "comment_text": "", "digests": { "md5": "fca8ba6056228403ecf2a10b9ecf84e0", "sha256": "99b092daa07d7d3db62a073ea336d8a435b73e1fde2f7bdb18e1276b769f0808" }, "downloads": -1, "filename": "poi.receivemail-1.13.tar.gz", "has_sig": false, "md5_digest": "fca8ba6056228403ecf2a10b9ecf84e0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20620, "upload_time": "2016-12-09T19:55:44", "url": "https://files.pythonhosted.org/packages/9e/ac/a064b293872c4f2532ac5707840d057aef1c864ecca248b950a2344bed44/poi.receivemail-1.13.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "1a191413b0aafb90911bce50638bc731", "sha256": "170b51b319c4ba36a6a88be93bc2e6ca34a07c39d66cbfffa5f7d6399d16b167" }, "downloads": -1, "filename": "poi.receivemail-1.2.zip", "has_sig": false, "md5_digest": "1a191413b0aafb90911bce50638bc731", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23968, "upload_time": "2011-05-09T15:49:41", "url": "https://files.pythonhosted.org/packages/9d/0f/86b0e8041d74abf7b184d643e5906ce5206e17704893a407ada3a419d4d2/poi.receivemail-1.2.zip" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "eefbece026b2d9edd15e2fe9fb72ccfd", "sha256": "d31c119ead9fa580131bfbca45e0151da6e1681c949ff5dc09b0693d590e2587" }, "downloads": -1, "filename": "poi.receivemail-1.3.zip", "has_sig": false, "md5_digest": "eefbece026b2d9edd15e2fe9fb72ccfd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24660, "upload_time": "2011-05-11T19:08:40", "url": "https://files.pythonhosted.org/packages/a9/2e/feab9fa929f87fe7e2261f2891c8562c02819b75a6fdbae975e689c52616/poi.receivemail-1.3.zip" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "b8e028f4d4aeaf42402128b74f8193a9", "sha256": "7424e43ef676da8652d9839a03589682c5d2cf5a5dd0e895a7c5ca2d0fed774f" }, "downloads": -1, "filename": "poi.receivemail-1.4.zip", "has_sig": false, "md5_digest": "b8e028f4d4aeaf42402128b74f8193a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26384, "upload_time": "2011-06-14T15:07:46", "url": "https://files.pythonhosted.org/packages/3a/e9/e387dfa5db2b314d11b1f8d27a05a4ac4e51b764dca4a94dab8f511e14f2/poi.receivemail-1.4.zip" } ], "1.5": [ { "comment_text": "", "digests": { "md5": "d4875a4de71cc2c114983154fba113c1", "sha256": "6fa635432822f707437c7f9faabe19a6b6ec7e427c66e792c18008d5f9987331" }, "downloads": -1, "filename": "poi.receivemail-1.5.zip", "has_sig": false, "md5_digest": "d4875a4de71cc2c114983154fba113c1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26562, "upload_time": "2011-06-22T18:06:10", "url": "https://files.pythonhosted.org/packages/50/61/7d41161a6ec66d12fd41cf00ec6b0d163282e23d8524ef0998ce3c690446/poi.receivemail-1.5.zip" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "3bc9d66a0b729bfcc4e0ee6cf27b9fd1", "sha256": "144b013582cafe6f9c478155e9ae677909ea6dbddec5ebd8e3d09db772a3f801" }, "downloads": -1, "filename": "poi.receivemail-1.6.zip", "has_sig": false, "md5_digest": "3bc9d66a0b729bfcc4e0ee6cf27b9fd1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26882, "upload_time": "2011-09-06T14:36:57", "url": "https://files.pythonhosted.org/packages/19/25/b9cd6cc95a03a4061113b282d4b6a5c9edb78bbacfe4f185a597057fa3d5/poi.receivemail-1.6.zip" } ], "1.7": [ { "comment_text": "", "digests": { "md5": "7104cdd5c631567b7689fda36ec76e7b", "sha256": "6eee0a6ea630e7dfd7e0298755d134d4d5fe2aac61411f43c8812fb4e848cc84" }, "downloads": -1, "filename": "poi.receivemail-1.7.tar.gz", "has_sig": false, "md5_digest": "7104cdd5c631567b7689fda36ec76e7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18921, "upload_time": "2011-11-09T13:28:09", "url": "https://files.pythonhosted.org/packages/73/05/7a530e9845b7a94a198cee63a0b8ebe698f3d0fb7c8274c273647ddbdc4c/poi.receivemail-1.7.tar.gz" } ], "1.8": [ { "comment_text": "", "digests": { "md5": "576ad7151042f129eace4e99b9878659", "sha256": "c642e4f6c426ccb889544add61f285dc4838ecfe5ac4888214a16e627895ef31" }, "downloads": -1, "filename": "poi.receivemail-1.8.tar.gz", "has_sig": false, "md5_digest": "576ad7151042f129eace4e99b9878659", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19085, "upload_time": "2011-11-10T17:11:31", "url": "https://files.pythonhosted.org/packages/3b/cf/20fd65739b9f9cfe6b1c6237ad47776a590bce086f8a658b8dbbabd8b11d/poi.receivemail-1.8.tar.gz" } ], "1.9": [ { "comment_text": "", "digests": { "md5": "d80aa3fe8f6c42123ef4fef2cfaac1e6", "sha256": "b1d047c3227cb7e24620ad032be0fc7cd2740dff0af2bce88e1c439398261a81" }, "downloads": -1, "filename": "poi.receivemail-1.9.tar.gz", "has_sig": false, "md5_digest": "d80aa3fe8f6c42123ef4fef2cfaac1e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20121, "upload_time": "2011-11-28T16:17:49", "url": "https://files.pythonhosted.org/packages/54/d2/2503332f10c053607c4eb928fa0f38a3742c4bf754f26d7ab8c7e6360275/poi.receivemail-1.9.tar.gz" } ], "2.0": [ { "comment_text": "", "digests": { "md5": "1fa8e0439d7267ba3e87a5162f2b41a6", "sha256": "7bf3417dfa62d45425abac5ee3746c9439f9de94dfebe0def6d0110799e9e177" }, "downloads": -1, "filename": "poi.receivemail-2.0.tar.gz", "has_sig": false, "md5_digest": "1fa8e0439d7267ba3e87a5162f2b41a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22101, "upload_time": "2017-01-02T15:40:03", "url": "https://files.pythonhosted.org/packages/99/02/00ebac17421f0746e0cfcc5cf71747824019f899e48df255595c89559366/poi.receivemail-2.0.tar.gz" } ], "2.0.1": [ { "comment_text": "", "digests": { "md5": "b80524b8814c0e6815a58e19aabff371", "sha256": "546e4182bf78adfa8665f71eda278ac7f3cdca5666cbdb6d82cfdba115731922" }, "downloads": -1, "filename": "poi.receivemail-2.0.1.tar.gz", "has_sig": false, "md5_digest": "b80524b8814c0e6815a58e19aabff371", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23298, "upload_time": "2017-08-18T12:32:31", "url": "https://files.pythonhosted.org/packages/76/ce/115f7cb015357f6e3c21e213b5cb9dfb1d8ecb6a09937620b8e5de0d0321/poi.receivemail-2.0.1.tar.gz" } ], "3.0.0": [ { "comment_text": "", "digests": { "md5": "0e39dca6c35201347a44050461232a9e", "sha256": "b2b76d585bb79d1ff238ee0a18e780735440a5aad3bcba0ce6e26f376378741f" }, "downloads": -1, "filename": "poi.receivemail-3.0.0.tar.gz", "has_sig": false, "md5_digest": "0e39dca6c35201347a44050461232a9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24494, "upload_time": "2017-10-31T15:21:11", "url": "https://files.pythonhosted.org/packages/b3/6b/7b07418c3004b8942df1875e2defeaffb65251e9f6bb16f22b80fa713c50/poi.receivemail-3.0.0.tar.gz" } ], "3.0.1": [ { "comment_text": "", "digests": { "md5": "b16b90ff3ef64b750438c5e7928369e6", "sha256": "dc851f2c8ceb2e29df2b52ba39987be8fdbda0d3324a78d03437e374294b49b4" }, "downloads": -1, "filename": "poi.receivemail-3.0.1.tar.gz", "has_sig": false, "md5_digest": "b16b90ff3ef64b750438c5e7928369e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24862, "upload_time": "2017-11-13T19:53:50", "url": "https://files.pythonhosted.org/packages/88/94/9cc3f5059362cd1d91af91723fc4ae905671da577662877dbc01d4384b63/poi.receivemail-3.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b16b90ff3ef64b750438c5e7928369e6", "sha256": "dc851f2c8ceb2e29df2b52ba39987be8fdbda0d3324a78d03437e374294b49b4" }, "downloads": -1, "filename": "poi.receivemail-3.0.1.tar.gz", "has_sig": false, "md5_digest": "b16b90ff3ef64b750438c5e7928369e6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24862, "upload_time": "2017-11-13T19:53:50", "url": "https://files.pythonhosted.org/packages/88/94/9cc3f5059362cd1d91af91723fc4ae905671da577662877dbc01d4384b63/poi.receivemail-3.0.1.tar.gz" } ] }