{ "info": { "author": "Chris Rossi", "author_email": "repoze-dev@lists.repoze.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Programming Language :: Python" ], "description": "``repoze.postoffice`` README\n============================\n\n``repoze.postoffice`` provides a centralized depot for collecting incoming\nemail for consumption by multiple applications. Incoming mail is sorted\ninto queues according to rules with the expectation that each application\nwill then consume its own queue. Each queue is a first-in-first-out (FIFO)\nqueue, so messages are processed in the order received.\n\nZODB is used for storage and is also used to provide the client interface.\n``repoze.postoffice`` clients create a ZODB connection and manipulate models.\nThis makes consuming the message queue in the context of a transaction,\nrelatively simple.\n\nPlease see ``docs/index.rst`` for the complete documentation.\n\n\n``repoze.postoffice`` Changelog\n===============================\n\n0.25 (2014-09-30)\n-----------------\n\n- Introduce the 'find_queue' function as an alternative to 'open_queue' for \n applications that will manage their own database connection.\n\n0.24 (2013-10-10)\n-----------------\n\n- Avoid throttling BCC'ed messages (those where ``X-Original-To`` is not\n present in ``To`` or ``CC``), because they can't be part of loops.\n\n- Accept messages as non-duplicates which have the same ``Message-ID`` headers,\n but different ``X-Original-To`` headers. Rationale: on systems which\n add ``X-Original-To`` (postfix adds it by default), its presence indicates\n delivery to a separate user; we should allow it to be queued for attempted\n processing.\n\n0.23 (2013-07-31)\n-----------------\n\n- Enable configuration of the headers considred by the ``to_hostname`` filter.\n\n- Update the headers considered by in the ``to_hostname`` filter to\n include ``X-Original-To`` by default. This header is set by Postfix\n to match the envelope recipient; including it allows matching messages\n for which the domain is BCC'ed or delivered from a mailing list.\n\n0.22 (2013-07-26)\n-----------------\n\n- Avoid erroring while logging messages with encoded header values\n E.g., some clients don't escape non-ASCII in ``To:`` / ``From:`` /\n ``Subject:`` headers. See LP #1202770.\n\n- Handle broken addresses in ToHostName filter more gracefully.\n\n- Converted documentation to Sphinx.\n\n- Moved repository to Github.\n\n0.21 (2012-09-05)\n-----------------\n\n- Make regexp filters case sensitive.\n\n0.20 (2012-05-14)\n-----------------\n\n- Only close databases we create ourselves in open_queue.\n\n0.19 (2012-05-10)\n-----------------\n\n- Allow calling application to provide an already open database to open_queue.\n (LP #985546)\n\n0.18 (2012-04-19)\n-----------------\n\n- Added graceful degeneration when provided with uknown character encoding in \n a MIME text part.\n\n0.17 (2011-09-26)\n-----------------\n\n- Added a header, 'X-Postoffice-Date', to queued messages. It records\n the time each message was received (as seconds since the epoch.) It\n is set to the modified time of the maildir message file. \n\n0.16 (2011-06-30)\n-----------------\n\n- Added better fault tolerance for insane date headers generated by spambots.\n (LP #697033)\n\n0.15 (2011-06-15)\n-----------------\n\n- Body checks are now multiline regexp checks. (LP #787573)\n\n0.14 (2011-05-17)\n-----------------\n\n- Fixed problem where the zodb_uri could be unicode, which eventually breaks\n the ZEO client for ZEO uris. zodb_uri is now converted to a UTF-8 string.\n\n0.13 (2011-05-05)\n-----------------\n\n- Fixed problem with header filters not working properly with non-ASCII\n characters in headers. (LP #777455)\n\n- Fixed bug in regular expression body filter which improperly parsed the\n 'Content-Type' header in order to extract the character set of a Mime part.\n\n0.12 (2011-04-25)\n-----------------\n\n- Respect leading and trailing whitespace in rules files.\n\n0.11 (2011-04-25)\n-----------------\n\n- When a message is rejected by a filter, a message is logged showing which\n filter triggered the rejection.\n\n0.10 (2011-04-20)\n-----------------\n\n- Improved logging output now includes a timestamp.\n\n- Worked around (probable) bug in stdlib email parser where a message part\n might have a charset set in the 'Content-Type' header, but\n message.get_charset() returns None.\n\n0.9 (2011-04-15)\n----------------\n\n- Added greater fault tolerance for malformed email addresses. (Shakes fist at\n spammers.)\n\n- Added four new filter types based on regular expression matching:\n ``header_regexp``, ``header_regexp_file``, ``body_regexp``,\n ``body_regexp_file``. See README.txt for information on how to use these\n new filters.\n\n- Added a new option to the global configuration: ``reject_filters``.\n This allows you to set up filters at a global level for rejecting certain\n messages. See README.txt for more information.\n\n0.8 (2011-01-14)\n----------------\n\n- The 'to_hostname' filter now parses multiple email addresses and checks the\n 'Cc' header as well as the 'To' header. (LP #659243)\n\n- If multiple incoming messages in a 24 hour period have the same Message-Id,\n they are presumed to be duplicates and all but the first are discarded.\n (LP #659243)\n\n0.7 (2010-09-15)\n----------------\n\n- Fixed another case where non-RFC 2047 compliant headers could cause an\n exception to be raised. (LP #637484)\n\n0.6 (2010-09-13)\n----------------\n\n- Added Queue.requeue_quarantined_messages() convenience method to API.\n\n- Allow for multiple hosts in 'to_hostname' filter. (LP #614528)\n\n- Added graceful degradation for non-RFC 2047 compliant headers, in order to\n avoid crashing when spambots send us malformed messages. (LP #637484)\n\n0.5 (2010-08-03)\n----------------\n\n- Added 'X-Postoffice: Bounced' header to outgoing bounce and quarantine\n messages. The presence of this header is checked when importing messages and\n any messages which contain it are discarded. This is to prevent possible\n ricochets of bounce messages back into the system. (LP #612587)\n\n- Incoming messages with a 'From' header which matches exactly its 'To' header\n are now discarded as probable spam. (LP #612588)\n\n0.4 (2010-07-30)\n----------------\n\n- Fixed bug in processing body of bounce messages when non-ascii unicode\n characters are present.\n\n0.3 (2010-07-20)\n----------------\n\n- Fixed divide by zero error when calculating instantaneous message frequency.\n\n- Fixed bug in repoze.postoffice.queue.open_queue where a ZEO connection would\n be left open if there was a KeyError on the queue name.\n\n0.2 (2010-06-29)\n----------------\n\n- Fixed bug in parsing headers with no values.\n\n- Added ability to use arbitrary message headers as discriminator values in\n out of office loop detection.\n\n- When messages exceed maximum message size, are throttled or are found to be\n an auto-response, they are no longer discarded. Instead these messages get\n an 'X-Postoffice-Rejected' header added where the value gives the reason for\n rejection. These messages are then consumable by clients in the normal way.\n It is up to the client to detect the 'X-Postoffice-Rejected' header and take\n appropriate action. This change was made to allow the client to determine\n what, if any, sort of bounce message should be generated if any of these\n conditions are true.\n\n0.1 (2010-06-03)\n----------------\n\n- Initial Release.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.repoze.org", "keywords": "e-mail zope repoze", "license": "BSD-derived (http://www.repoze.org/LICENSE.txt)", "maintainer": null, "maintainer_email": null, "name": "repoze.postoffice", "package_url": "https://pypi.org/project/repoze.postoffice/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/repoze.postoffice/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.repoze.org" }, "release_url": "https://pypi.org/project/repoze.postoffice/0.25/", "requires_dist": null, "requires_python": null, "summary": "Provides central depot for incoming mail for use by applications.", "version": "0.25" }, "last_serial": 1243223, "releases": { "0.17": [ { "comment_text": "", "digests": { "md5": "48e6e21f3a45efa6f00ffbd97041e544", "sha256": "412f58a795524b228b70c3e90fb03d394f1b340c97e57d2e9441c30837c01586" }, "downloads": -1, "filename": "repoze.postoffice-0.17.tar.gz", "has_sig": false, "md5_digest": "48e6e21f3a45efa6f00ffbd97041e544", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31084, "upload_time": "2011-09-26T18:51:20", "url": "https://files.pythonhosted.org/packages/a5/54/ab69e8a87fd52fb5e08b1dabd98436ce04688981332956cd901a55e0327f/repoze.postoffice-0.17.tar.gz" } ], "0.18": [ { "comment_text": "", "digests": { "md5": "da9230fb73e7d3d2d2eeed3fad55838f", "sha256": "a08ed348d5519d6d9176d1547af7bedfb64fe77a2b675b5da7f67afabcb24ad7" }, "downloads": -1, "filename": "repoze.postoffice-0.18.tar.gz", "has_sig": false, "md5_digest": "da9230fb73e7d3d2d2eeed3fad55838f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30111, "upload_time": "2012-04-19T19:41:35", "url": "https://files.pythonhosted.org/packages/22/d2/ed406ad956378fd2bcbfe8b03912d57ff7db458c0342d7c0e891e4e406af/repoze.postoffice-0.18.tar.gz" } ], "0.19": [ { "comment_text": "", "digests": { "md5": "c0c32c42f67a82690b1cd311edc22dae", "sha256": "093849ae44eba90f8fc5bbe3fa7ee8a435077a385b8aabab713fec7da424e37c" }, "downloads": -1, "filename": "repoze.postoffice-0.19.tar.gz", "has_sig": false, "md5_digest": "c0c32c42f67a82690b1cd311edc22dae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30238, "upload_time": "2012-05-10T22:44:04", "url": "https://files.pythonhosted.org/packages/c5/57/2ed0c9069d982dd03ef535d2f8c3683aa52bbf2d22d2106a60c8a8989269/repoze.postoffice-0.19.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "442e54ea567c32297fd7c3f7c6f40f7e", "sha256": "160da90faf5687e3baeb544481c6c4e1a083ebe8e345a1c14af10023e7926f09" }, "downloads": -1, "filename": "repoze.postoffice-0.2.tar.gz", "has_sig": false, "md5_digest": "442e54ea567c32297fd7c3f7c6f40f7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22928, "upload_time": "2010-06-30T18:38:10", "url": "https://files.pythonhosted.org/packages/16/db/0ae15175fc3d44afa582013dd4d8c3de9c9902aec402606dba3179f53489/repoze.postoffice-0.2.tar.gz" } ], "0.21": [ { "comment_text": "", "digests": { "md5": "858a81ca45f502bab93dc85f4f45490c", "sha256": "cb11f916bdf00ff7b473fce691179ec6d5119b493344a95b9a09dfca51e6b227" }, "downloads": -1, "filename": "repoze.postoffice-0.21.tar.gz", "has_sig": false, "md5_digest": "858a81ca45f502bab93dc85f4f45490c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 30284, "upload_time": "2012-09-05T20:52:27", "url": "https://files.pythonhosted.org/packages/ec/66/3c57f772def56f8181fcc5fa1fe414ae938bfaac97939df44a63cf4533ac/repoze.postoffice-0.21.tar.gz" } ], "0.22": [ { "comment_text": "", "digests": { "md5": "292d0ed37ad222c1d03f7990c04a5853", "sha256": "3a04f58833f4893fb8bec3aeb8cc89366621ba4feace80f9e40916d9ce95ee04" }, "downloads": -1, "filename": "repoze.postoffice-0.22.tar.gz", "has_sig": false, "md5_digest": "292d0ed37ad222c1d03f7990c04a5853", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 40454, "upload_time": "2013-07-26T20:38:27", "url": "https://files.pythonhosted.org/packages/66/83/6bfd48127f0360483f00fad383940e2d303887c285b226d550d600f19392/repoze.postoffice-0.22.tar.gz" } ], "0.23": [ { "comment_text": "", "digests": { "md5": "c63791db0f4381f7ec8c7cf3c3b67d67", "sha256": "0fb1ac74213f4e70fd5d9c57823e732099fdea5202315cc3719687a0e8be954c" }, "downloads": -1, "filename": "repoze.postoffice-0.23.tar.gz", "has_sig": false, "md5_digest": "c63791db0f4381f7ec8c7cf3c3b67d67", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 43788, "upload_time": "2013-08-19T18:05:18", "url": "https://files.pythonhosted.org/packages/d7/b8/d58bbb7e382d171706b6b9948ce351c4b9fb0776c8fa462c510b7999c9f7/repoze.postoffice-0.23.tar.gz" } ], "0.24": [ { "comment_text": "", "digests": { "md5": "a81ba253627730569cb64c4229ab3f94", "sha256": "be63be1a244c334d2e65bc365479d48be023782859615c1d87b7f8b3d498e32f" }, "downloads": -1, "filename": "repoze.postoffice-0.24.tar.gz", "has_sig": false, "md5_digest": "a81ba253627730569cb64c4229ab3f94", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 44825, "upload_time": "2013-10-10T19:48:12", "url": "https://files.pythonhosted.org/packages/81/34/04f1b5033527c983c377a7f1329c579f9beb8cfe37100697b716f68c75d0/repoze.postoffice-0.24.tar.gz" } ], "0.25": [ { "comment_text": "", "digests": { "md5": "a35d2b693133f20c91a1bc9d8060b2b7", "sha256": "791a17fafc66f58ea976f0b11b12bb4208bd6b3a260cc18f3919521ae6a0f397" }, "downloads": -1, "filename": "repoze.postoffice-0.25.tar.gz", "has_sig": false, "md5_digest": "a35d2b693133f20c91a1bc9d8060b2b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45000, "upload_time": "2014-09-30T15:16:42", "url": "https://files.pythonhosted.org/packages/17/fc/0d30131dd129dec51583aab7c20968823f3a7d5b73d67c9d4b22a82d06c5/repoze.postoffice-0.25.tar.gz" } ], "0.7": [ { "comment_text": "", "digests": { "md5": "abcb056afe42790d47d17ece424f0ef2", "sha256": "93bb96ed0617721902ef3660a8ff7b20a1d3662d3146964e2890c657ee9469c1" }, "downloads": -1, "filename": "repoze.postoffice-0.7.tar.gz", "has_sig": false, "md5_digest": "abcb056afe42790d47d17ece424f0ef2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24515, "upload_time": "2010-09-15T21:38:28", "url": "https://files.pythonhosted.org/packages/6d/ad/7ec7f338beb5ba8dd7cd5287670db90186d337090693d1f322986e4e2ceb/repoze.postoffice-0.7.tar.gz" } ], "0.9": [ { "comment_text": "", "digests": { "md5": "ad15b51831469561f3c87342425137bd", "sha256": "4afb1367f62f12805d6efb61e681f8f38753eb61fee1da4eee784e1c03d8ef83" }, "downloads": -1, "filename": "repoze.postoffice-0.9.tar.gz", "has_sig": false, "md5_digest": "ad15b51831469561f3c87342425137bd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28642, "upload_time": "2011-04-15T21:20:42", "url": "https://files.pythonhosted.org/packages/7b/46/5cc8156b0545185e07e739614a5f3223eb1bc2b518bc5effdd80dc0923e1/repoze.postoffice-0.9.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a35d2b693133f20c91a1bc9d8060b2b7", "sha256": "791a17fafc66f58ea976f0b11b12bb4208bd6b3a260cc18f3919521ae6a0f397" }, "downloads": -1, "filename": "repoze.postoffice-0.25.tar.gz", "has_sig": false, "md5_digest": "a35d2b693133f20c91a1bc9d8060b2b7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45000, "upload_time": "2014-09-30T15:16:42", "url": "https://files.pythonhosted.org/packages/17/fc/0d30131dd129dec51583aab7c20968823f3a7d5b73d67c9d4b22a82d06c5/repoze.postoffice-0.25.tar.gz" } ] }