Skip to content

Zope MailHost which routs mail to other MailHosts and a Scriptable Zope MailHost

Notifications You must be signed in to change notification settings

jean/collective.multimail

 
 

Repository files navigation

image

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, looks for mailhost object named 'default' by acquisition
- 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).

Rules are evaluated top to bottom.

Rules are set via the ZMI.

About

Zope MailHost which routs mail to other MailHosts and a Scriptable Zope MailHost

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%