This module (authres) is designed to provide support for RFC 5451/7001, originally https://tools.ietf.org/html/rfc5451 (and then https://tools.ietf.org/html/rfc7001 and https://tools.ietf.org/html/rfc7601) and currently https://tools.ietf.org/html/rfc8601, processing in Python. It also supports Authentication Results extensions: RFC 5617 DKIM/ADSP RFC 6008 DKIM signature identification (header.b) RFC 6212 Vouch By Reference (VBR) RFC 6577 Sender Policy Framework (SPF) RFC 7281 Authentication-Results Registration for S/MIME RFC 7293, The Require-Recipient-Valid-Since Header Field and SMTP Service Extension, header field types RFC 7489 Domain-based Message Authentication, Reporting, and Conformance (DMARC) RFC 8617 The Authenticated Received Chain (ARC) Protocol Support marked experimental may change or be removed without consideration for backward compatibility. RFC 7410, A Property Types Registry for the Authentication-Results Header Field, added the possibility for new ptypes to be created, but so far none have been registered. import authres only provides the RFC 5451/7001/7601/8601 types. Individual additions can be imported by name, import authres.dkim_b, authres.dkim_adsp, authres.vbr, authres.dmarc, and authres.smime. To use all the features, the feature context authres.all_features() is provided. Header folding and unfolding is the responsibility of the calling application. Between docstrings and RFC 5451/7001/7601/8601 the API should be reasonably clear, but the docstrings are still a work in progress. Additional examples are available in the file authres/tests. SPF authentication results can relate to either the HELO identity or the Mail From. When creating header fields with SPF results, only set the identity used to evaluate the SPF result that's reported. You can use multiple objects to report both in a single header field. See the example in the tests file. This package requires python2.6 or later (including python3). It has been tested at different times with python2.6, python2.7, python3.2, python3.3, python3.4, python3.5, and python3.6. The current release was tested with python3.7.. To execute doctests, run the module as main: python3 -m authres This is completely untested on Windows, but in theory should work.