Metadata-Version: 2.1
Name: email-report-checker
Version: 0.0.1
Summary: RFC 7489 & 8460 SMTP Report Monitoring Utilities.
Home-page: UNKNOWN
Author: Barnaby Shearer
Author-email: b@zi.is
License: UNKNOWN
Project-URL: Source, https://github.com/BarnabyShearer/email-report-checker
Project-URL: Tracker, https://github.com/BarnabyShearer/email-report-checker/issues
Project-URL: Documentation, https://email-report-checker.readthedocs.io/en/latest/
Keywords: dmarc email smtp tls
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: BSD License
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
License-File: LICENSE

..
    Autogenerated by https://github.com/BarnabyShearer/meta

====================
email-report-checker
====================
.. image:: https://readthedocs.org/projects/email-report-checker/badge/?version=latest
    :target: https://email-report-checker.readthedocs.io/en/latest/
.. image:: https://img.shields.io/pypi/v/email-report-checker?color=success
    :target: https://pypi.org/project/email-report-checker

RFC 7489 & 8460 SMTP Report Monitoring Utilities.

Install
-------

.. code-block:: bash

    python3 -m pip install email-report-checker

Note these are for my hobby domain, do not try running them on even moderate traffic MTAs

RFC 7489 Domain-based Message Authentication, Reporting, and Conformance (DMARC)
--------------------------------------------------------------------------------

First ensure your DMARC DNS TXT record contains `rua` and `ruf` to request reports:

    _dmarc.zi.is.		3600	IN	TXT	"v=DMARC1; p=reject; pct=100; ruf=mailto:b+dmarc@zi.is; rua=mailto:b+dmarc@zi.is; adkim=s; aspf=s"

Then load the reports via IMAP:

.. code-block:: bash

    dmarc-report-checker m.zi.is b@zi.is Archive > dmarc.json

And report your statistics

.. code-block:: bash

    jq '[ .[].record.row | select(.source_ip == "68.183.35.248") | select(.policy_evaluated.dkim == "pass") | .count | tonumber] | add' dmarc.json
    jq '[ .[].record.row | select(.source_ip == "68.183.35.248") | select(.policy_evaluated.dkim == "fail") | .count | tonumber] | add' dmarc.json


RFC 8460 SMTP TLS Reporting
---------------------------

First create a DNS TXT record to request reports:

::

    _smtp._tls.zi.is.	3600	IN	TXT	"v=TLSRPTv1;rua=mailto:b+tls@zi.is"

Then load the reports via IMAP:

.. code-block:: bash

    tls-report-cheker m.zi.is b@zi.is Archive > tls.json

And report your statistics

.. code-block:: bash

    jq '[.[] | [.policies[].summary["total-successful-session-count"]] | add] | add' tls.json
    jq '[.[] | [.policies[].summary["total-failure-session-count"]] | add] | add' tls.json




