Python SRS Library 0.30.11 review

by on

Python SRS Library is a Python implementation of the Sender Rewriting Scheme

License: Python License
File size: 0K
Developer: Stuart D. Gathman
0 stars award from

Python SRS Library is a Python implementation of the Sender Rewriting Scheme. Python SRS Library is a fairly direct translation of the draft implementation in Perl by Shevek. It includes a test suite, which currently checks four levels of forwarding and subsequent reversal for the Guarded, DB, and Reversible implementations.

This package includes scripts to be used as sendmail program maps. See sendmail integration for an explanation and instructions on incorporating SRS into, substituting and for the perl scripts. Even simpler, use the supplied sendmail m4 hack with

SRS.Daemon.Daemon() provides a simple socket daemon suitable for use with the Exim mailer.

RPM now includes a sendmail socketmap daemon. The program map is no longer recommended. It is slow and a security risk. Prior to socketmaps, it was all that was available for a custom map. Socketmap is available in sendmail 8.13.

For best results, use with Python milter to reject unsigned recipients.

Sendmail integration

Add the following lines to your /etc/mail/ (RedHat / Fedora) after any MAILER():

dnl #
dnl # File listing domains we do not SRS encode for when sending to
dnl #
dnl #
dnl # Uncomment the following if you do not wish to SRS encode mail from
dnl # local domains. Only non-local domains need to be SRS encoded to
dnl # satisfy SPF. But encoding all outgoing mail can detect bounce forgeries.
dnl #
dnl define(`NO_SRS_FROM_LOCAL')dnl
dnl #

If you cannot install a version of sendmail with socketmap support, then the original program map is still available as HACK(pysrsprog).

NO_SRS_FILE is the path of a file containing the recipient MTA's for which you won't do SRS (typically, primary MXes for which you are secondary). Just leave this away, if you are secondary for nobody. The no-srs-mailers file is a simple text file which has one recipient MTA per line.

The argument to pysrs is the socket where the socketmap daemon is listening. This must match /etc/mail/pysrs.cfg or the default of /var/run/milter/pysrs.

NO_SRS_FROM_LOCAL : if this is set (define line present), then no SRS is done if sender is local (i.e. his domain is in /etc/mail/local-host-names)

The argument to pysrsprog is the domain that your SRS addresses bear (i.e. if your SRS addresses are, then the argument is This overrides fwdomain in /etc/mail/pysrs.cfg.

What's New in This Release:
This release supports signing mode.

Python SRS Library 0.30.11 keywords