Implements a simple forwarding policy, to transform or replace recipients.

class slimta.policy.forward.Forward

Bases: slimta.policy.QueuePolicy

Each Envelope recipient is run through re.sub() to see if it is modified. If a recipient matches a mapping rule, no further mapping rules are processed. Mapping rules are checked in the order that they were added.

add_mapping(pattern, repl[, count=0])

Adds a mapping rule.

  • pattern (str or re.RegexObject) – Pattern to check recipient against.

  • repl (str or function) – Replacement for pattern matches, as described by re.sub().

  • count – Max number of replacements per recipient string.


QueuePolicy sub-classes must override this method, which will be called by the Queue before storage.


envelope – The Envelope object the policy execution should apply any changes to. This envelope object may be modified, though if new envelopes are returned this object is discarded.


Optionally return or generate an iterable of Envelope objects to replace the given envelope going forward. Returning None or an empty list will keep using envelope.