This is a pre-production deployment of Warehouse, however changes made here WILL affect the production instance of PyPI.
Latest Version Dependencies status unknown Test status unknown Test coverage unknown
Project Description

Introduction

This package defines a browser view @@poimail that reads an email from the request and creates an issue for that or adds a response to an issue. It is a bridge between smtp2zope and Products.Poi.

Compatibility

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.

Usage

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:

    helpdesk@example.org "|/path/to/smtp2zope http://example.org/tracker/@@poimail"
    

    or this:

    helpdesk@example.org "|/path/to/smtp2zope http://admin:secret@example.org/tracker/@@poimail 1000000"
    
  • Now when someone sends an email to helpdesk@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.

Changelog

2.0 (2017-01-02)

  • Check NEEDED_PERMISSIONS before faking a manager. If a user already has the needed permissions, there is no need to fake a manager. [maurits]
  • Fake a TrackerManager instead of Manager when possible. This role was introduced in Products.Poi 2.2 (Plone 4). This is done when FAKE_MANAGER is true, which is the default. This only happens for specified IP-addresses. [maurits]
  • Fixed issue creation for Plone 4. Posting an issue would fail because no post transition was available. This is because in Plone 4 this happens automatically on the IObjectInitializedEvent. Now we only do the transition if the review state is still new. [maurits]

1.13 (2016-12-09)

  • Fixed package: don’t use symlinks. [maurits]

1.12 (2016-12-09)

  • Do more decoding. Each part can have its own encoding. We should use those to make something readable. [maurits]
  • Decode from quoted printable in a few cases. [maurits]

1.11 (2012-10-14)

1.10 (2011-12-14)

  • 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]

1.9 (2011-11-28)

  • 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]

1.8 (2011-11-10)

  • Set more fields explicitly, as the createObjectByType call only sets some of them. [maurits]

1.7 (2011-11-09)

  • 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]

1.6 (2011-09-06)

  • Prevent issues from being automatically renamed after they are edited. [maurits]
  • Prevent some more lower-case email address comparison problems. [maurits]

1.5 (2011-06-22)

  • Make e-mail from address lower-case to prevent search problems with ldap users. [jladage]

1.4 (2011-06-14)

  • 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]

1.3 (2011-05-11)

  • 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]

1.2 (2011-05-09)

  • 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]

1.1 (2011-05-05)

  • Handle encoded subject lines better. [maurits]

1.0 (2011-05-05)

  • Initial release
Release History

Release History

2.0

This version

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.13

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.12

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.11

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.10

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.9

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.8

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.7

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.6

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.5

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.4

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.3

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.2

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.1

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

1.0

History Node

TODO: Figure out how to actually get changelog content.

Changelog content for this version goes here.

Donec et mollis dolor. Praesent et diam eget libero egestas mattis sit amet vitae augue. Nam tincidunt congue enim, ut porta lorem lacinia consectetur. Donec ut libero sed arcu vehicula ultricies a non tortor. Lorem ipsum dolor sit amet, consectetur adipiscing elit.

Show More

Download Files

Download Files

TODO: Brief introduction on what you do with files - including link to relevant help section.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
poi.receivemail-2.0.tar.gz (22.1 kB) Copy SHA256 Checksum SHA256 Source Jan 2, 2017

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting