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

Products.PrintingMailHost

This is a hack. :)

This product, when installed, will check if Zope is running in debug mode, and if so, monkey patch (that is, grab the internals of, squeeze tight, then rip hard, just like monkeys do) Zope’s MailHost class, meaning that any and all uses of a MailHost will be “fixed” so that instead of sending mail, it prints messages to the zope event log.

This is useful if you don’t have a local mailhost for testing, or if you prefer not to spam the crap out of yourself whilst finding out if your bulk mail script is working.

If Zope is not running in debug mode, it will not install itself. However, I wouldn’t recommend putting it on a production site. You never know what those monkeys may get up to…

You can optionally enable the PrintingMailHost with an environment variable as of version 0.3. See the installation instructions for more information about how to use it.

Compatibility

Works on Plone 3.3, Plone 4, Plone 5.

Author

Martin Aspeli <optilude (AT) gmx (DOT) net>
Initial idea, release management

Contributors

Dorneles Tremea <deo (AT) plonesolutions (DOT) com>
Fixed to work both with old-style and new-style classes. Extended to also patch SecureMailBase from SecureMailHost, if available.

Clayton Parker <clayton (AT) sixfeetup (DOT) com>

Maurits van Rees <maurits (AT) vanrees (DOT) org>

Products.PrintingMailHost Installation

To install Products.PrintingMailHost into your Plone instance in buildout, you can do this:

  • Add Products.PrintingMailHost to the list of eggs to install, e.g.:

    [instance]
    ...
    eggs =
        ...
        Products.PrintingMailHost
    
  • If you want to enable PrintingMailHost when debug-mode is off:

    [instance]
    ...
    environment-vars =
        ...
        ENABLE_PRINTING_MAILHOST True
    
  • If you want to disable PrintingMailHost when debug-mode is on:

    [instance]
    ...
    environment-vars =
        ...
        ENABLE_PRINTING_MAILHOST False
    
  • If PrintingMailHost is enabled, and you additionally want to send each email to a fixed address, you can add another environment variable:

    [instance]
    ...
    environment-vars =
        ...
        PRINTING_MAILHOST_FIXED_ADDRESS admin@example.org
    

    Or multiple addresses separated by spaces:

    PRINTING_MAILHOST_FIXED_ADDRESS one@example.org two@example.org
    

    For clarity: this first prints the email, with the original recipient address, and then sends an actual email with the same contents to the fixed address you have specified. The original recipient is visible in the To: field. It is similar to receiving a blind carbon copy (bcc) of an email, except that the original recipient never gets the email.

  • Re-run buildout in order to make any of the above changes active:

    $ ./bin/buildout
    

Changelog

1.0 (2016-09-20)

  • Treat FIXED_ADDRESS as a list. Previously, depending on your Plone version. a fixed address could get interpreted as a list of single-character email addresses, which of course does not work. Now it works properly. You can also give a list of addresses by separating them using spaces: one@example.org two@example.org. Fixes https://github.com/collective/Products.PrintingMailHost/issues/4 [maurits]

0.8 (2015-04-16)

  • Add environment variable PRINTING_MAILHOST_FIXED_ADDRESS to send all emails to a single, fixed address. PrintingMailHost still needs to be enabled, so this is in addition to printing. https://github.com/collective/Products.PrintingMailHost/issues/2 [maurits]
  • Since we can enable PMH via an environment variable and thus when not running in debug mode / foreground, emails are no longer printed, but written to the zope event log. [pysailor]

0.7 (2010-01-05)

  • Also patch (Secure)MaildropHost when available. [maurits]

0.6 (2010-01-05)

  • Allow passing keyword ‘immediate’. Needed for Plone 4 compatibility. [maurits]

0.5 (2009-08-07)

  • Fix email Message import [claytron]

0.4 (2009-07-24)

  • Rough support for multipart email messages [iElectric]

0.3 (2009-03-22)

  • Decode base64 encoded email messages [claytron]
  • Added environment variable (ENABLE_PRINTING_MAILHOST) to enable or disable PrintingMailHost [claytron]
  • Update README and HISTORY.txt [claytron]

0.2 (2008-08-20)

  • Release as an egg to PyPi [claytron]

0.1

  • Updated to use the new standard log mechanism: logging.getLogger. Reformated messages/docstrings. [dtremea] (2006-03-17)
  • Extended to also patch SecureMailBase from SecureMailHost, if available. [dtremea] (2005-10-23)
  • Fixed to work both with old-style and new-style classes, as in the later, dict is a ‘dictproxy’ instance, which doesn’t have the setitem method. Bumpped version. Noted changes. And clean up whitespaces, of course… ;-) [dtremea] (2005-10-23)
  • Initial creation/release [optilude] (2005-04-05)
Release History

Release History

1.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

0.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

0.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

0.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

0.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

0.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

0.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

0.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

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
Products.PrintingMailHost-1.0.tar.gz (11.5 kB) Copy SHA256 Checksum SHA256 Source Sep 20, 2016

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