Receive email in the Poi issue tracker
This has been tested with Plone 3.3.5 and Products.Poi 1.2.11. Should work fine with Plone 4.x and Poi 2.x as well.
A standard setup would look like this:
You have a Plone Site at http://example.org/.
This Plone Site has Products.Poi and poi.receivemail in its eggs.
The site has a Poi tracker at http://example.org/tracker.
You have installed smtp2zope on the same machine (possibly in the same buildout, but a virtualenv is fine too) and its script is available at /path/to/smtp2zope.
You have a mail server on this machine that has an alias like this:
email@example.com "|/path/to/smtp2zope http://example.org/tracker/@@poimail"
firstname.lastname@example.org "|/path/to/smtp2zope http://admin:email@example.com/tracker/@@poimail 1000000"
Now when someone sends an email to firstname.lastname@example.org a new issue is created in the tracker. When the subject of the email matches an existing issue, it is added as response to that issue.
When a user is found in the Plone Site that matches the sender address, we pretend to be that user when creating the issue or response. Otherwise, the Creator is anonymous or is the user that is identified through basic authentication in the url that is passed as argument to smtp2zope.
- Moved to https://github.com/collective/poi.receivemail [maurits]
- Fixed wrong match for issue by subject. While searching for #123 in the subject line we would match 123 at the beginning of the line as well, which may give wrong matches. [maurits]
- Use the body charset to decode the body text and then encode it as utf-8 before storing it. [maurits]
- Avoid a unicode error when there is no body. [maurits]
- Optionally add attachments from the e-mail. We look for binary attachments. These are added as separate responses, as you can only add one attachment per issue or response. In config.py we have added a setting ADD_ATTACHMENTS for this (default True) to make it a bit easier to switch this off in case of problems or when you do not want it. [maurits]
- Fixed handling multipart messages that have parts that themselves are multipart. [maurits]
- When there is an empty or missing Subject line, use ‘[no subject]’ as title. We do not try to match such a mail to a previous issue but always create a new one. [maurits]
- Set more fields explicitly, as the createObjectByType call only sets some of them. [maurits]
- When a subject (keyword, category) is given, set that explicitly. [maurits]
- In get_addresses allow getting addresses from headers other than To and From as well. [maurits]
- Prevent issues from being automatically renamed after they are edited. [maurits]
- Prevent some more lower-case email address comparison problems. [maurits]
- Make e-mail from address lower-case to prevent search problems with ldap users. [jladage]
- When searching PAS for a user by email address, strip off any white space (like possibly ‘rn’ in ldap) from the returned addresses, to avoid non-matching for silly reasons. [maurits]
- Moved all options to a new config.py file. [maurits]
- Add option ADVANCED_SUBJECT_MATCH. Default is False: we only check for ‘#123’ in the Subject line, to avoid matching overly generic Subject lines like ‘Hi’ or ‘Problem’. To get back the previous behavior, set this to True (in a patch in your own code, likely). [maurits]
- If the subject is empty, do not try to find a matching issue, as all issues will match. [maurits]
- Added FAKE_MANAGER option (default is True) to determine if we should fake a Manager role to be sure that a post succeeds. [maurits]
- While switching users: if ‘email’ is not in the properties (say: ldap), we can get far too many results; so we do a double check. [maurits]
- Ignore mails with the email_from_address as From address, as this too easily means that a message sent by Poi ends up being added as a reply on an issue that we have just created. [maurits]
- Handle encoded subject lines better. [maurits]
- Initial release