Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

https://secure.travis-ci.org/collective/collective.multimail.png

Introduction

Allows you to use more than one mailhost. Email is filtered by rules which determine which mailhost to send a particular email to. Each rule can apply regular expressions to email headers such as “to”, “from” and “subject”. Scripts or views can be configured in place of a mailhost to allow custom behaviour.

Potential uses include:

  • using different SMTP servers depending on the sender;

  • expanding special email addresses into multiple send calls;

  • sending via an external API such as twitter;

  • adding additional headers or altering the text of standard Plone emails.

For example, if you have a rule chain:

- header-match: {to: 'allsubscribers@notarealdomain'}
  action: 'send and stop'
  mailhost: '/sendtoall'

# Catch-all rule, uses the patched MailHost object.
- action: 'send and stop'
  mailhost: 'default'

and you have a Python Script sendtoall:

def sendtoall(messageText, mto=None, mfrom=None, subject=None, encode=None, immediate=False, charset='utf8', msg_type=None):
    for email in context.getSubscribers():
        context.MailHost.send(messageText, email, mfrom, subject, encode, immediate, charset, msg_type)

You can use the email address allsubscribers@notarealdomain in contentrules or other places in Plone to deliver an email to a database of subscribers.

Details

Either install via Generic Setup or by adding in the ZMI. Once a MultiMailHost object is placed in the same folder as a normal MailHost object, a monkeypatch to MailHost will allow MultiMail to handle all email sending.

Rule definition

A Rule Chain is a YAML list of rule definitions. A Rule definition can contain:

header-match

A dictionary of regular expressions for headers such as ‘to’, ‘from’.

action

Either ‘send and continue’, ‘send and stop’ or ‘stop’

mailhost

A traversable path to a IMailHost object or callable. Callables need to support the arguments (messageText, email, mfrom, subject, encode, immediate, charset, msg_type). The path is relative to the MultiMailHost and paths starting with / start from the Zope root.

Rules are evaluated top to bottom.

Rules are set via the ZMI.

default is a special mailhost which uses the orginal mailhost object unfiltered. If you want to resend an email and have it also filtered then use /MailHost.

TODO

  • [ ] Test with PloneFormGen

  • [ ] Handle matching when email is sent as text including headers (like PFG)

  • [ ] Ability to disable monkeypatch so can be used standalone

  • [ ] Security around traverse to script

Contributors

  • Adam Terrey, Original Author

  • Dylan Jay

  • Ivan Teoh

Changelog

1.0a6 (2014-01-17)

  • Switched to monkey patching to solve problems of being overwritten (djay)

  • Allow normal python scripts of views to be used. (djay)

  • Fix issue when called from PloneFormGen or via acquisition (ivanteoh)

  • Add test for matching rules (ivanteoh)

1.0a4 (2013-05-29)

  • First release (aterrey)

1.0a1 (unreleased)

  • Initial version (aterrey)

Release files for collective.multimail 1.0a6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for collective.multimail 1.0a6
File Size Uploaded
collective.multimail-1.0a6.tar.gz 25.7 kB Details

Release files / collective.multimail-1.0a6.tar.gz

Download URL collective.multimail-1.0a6.tar.gz
Size 25.7 kB
Tags Source
SHA-256 checksum
How to use checksums
984502b838893784a817f8760c80e1bc56c21cfbb3c121424e8580f5977860d8
BLAKE2b-256 checksum
How to use checksums
05b4035d92d2104ea822c672aa749d32687b329be7547ca0cca479b41456aa9d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0a6 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page