# DMARCReporting ![Build Status](https://github.com/mozaicworks/DMARCReporting/actions/workflows/build.yml/badge.svg?event=push)
This is a simple tool that displays the errors from a bunch of DMARC reports. It's meant to simplify the job of figuring out DMARC errors.
This is very much a work in progress, use only for tests! Feedback and pull requests are welcome.
## Install
```bash
pip install DMARCReporting
```
## How to use
* Download all zipped DMARC reports to a `samples` folder
* Execute:
```bash
DMARCReporting /path/to/reports
```
The tool processes the files one by one:
* unarchives the file on the fly
* parses the DMARC report
* if any DMARC rejection or quarantine or a failing SPF and/or DKIM authentication and/or alignment happens, a report is displayed on the console together with the DMARC report file name.
An example report looks as follows:
```plain
report.xml.gz
Source IP Source Host Payload From (From:) Envelop From (MAIL FROM) DMARC DKIM Align DKIM Auth SPF Align SPF Auth File
------------- ------------------------------ ---------------------- -------------------------- ------- ------------ ----------- ----------- ---------- ------
80.96.161.193 Unknown host bellous.com bellous.com none pass pass fail fail report.xml.gz
208.90.221.45 208-90-221-45.static.flhsi.com bellous.com calendar.yambo.com none pass pass fail pass report.xml.gz
80.96.161.193 Unknown host disicious.com disicious.com none pass pass fail fail report.xml.zip
208.90.221.45 208-90-221-45.static.flhsi.com disicious.com calendar.trumbee.com none pass pass fail pass report.xml.zip
```
## Run tests
```bash
make install-dev
make test
```
## Development Notes
This tool was started by [Alex Bolboaca](https://twitter.com/alexboly), with a clear goal: allow easier processing DMARC reports received by email. Alternate tools exist, but they are meant for enterprises, meaning they are either expensive or use a lot of infrastructure.
The main goal is to see a report of email failures to allow investigation. Therefore, this tool should be minimalistic, extracting the minimum necessary information and requiring a minimum infrastructure.
While it's possible to deploy it as a cloud function through a later development of a Docker container, it should also allow running it locally after obtaining the DMARC zipped reports in some way.
The current version has been developed mostly by [Thierry de Pauw](https://mastodon.social/@tdpauw), so all thanks should go to him :).
Raw data
{
"_id": null,
"home_page": "https://github.com/MozaicWorks/DMARCReporting",
"name": "DMARCReporting",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": "",
"keywords": "",
"author": "Mozaic Works",
"author_email": "alex.bolboaca@mozaicworks.com",
"download_url": "https://files.pythonhosted.org/packages/9a/95/bf38a105ed624c2e22135d72c1ef4bfd0d006f6e534f3924cce2cb185f9f/DMARCReporting-0.3.0.tar.gz",
"platform": null,
"description": "# DMARCReporting ![Build Status](https://github.com/mozaicworks/DMARCReporting/actions/workflows/build.yml/badge.svg?event=push)\n\nThis is a simple tool that displays the errors from a bunch of DMARC reports. It's meant to simplify the job of figuring out DMARC errors.\n\nThis is very much a work in progress, use only for tests! Feedback and pull requests are welcome.\n\n## Install\n\n```bash\npip install DMARCReporting\n```\n\n## How to use\n\n* Download all zipped DMARC reports to a `samples` folder\n* Execute:\n \n ```bash\n DMARCReporting /path/to/reports\n ```\n\nThe tool processes the files one by one:\n\n* unarchives the file on the fly\n* parses the DMARC report\n* if any DMARC rejection or quarantine or a failing SPF and/or DKIM authentication and/or alignment happens, a report is displayed on the console together with the DMARC report file name.\n\nAn example report looks as follows:\n\n```plain\nreport.xml.gz\nSource IP Source Host Payload From (From:) Envelop From (MAIL FROM) DMARC DKIM Align DKIM Auth SPF Align SPF Auth File\n------------- ------------------------------ ---------------------- -------------------------- ------- ------------ ----------- ----------- ---------- ------\n80.96.161.193 Unknown host bellous.com bellous.com none pass pass fail fail report.xml.gz\n208.90.221.45 208-90-221-45.static.flhsi.com bellous.com calendar.yambo.com none pass pass fail pass report.xml.gz\n80.96.161.193 Unknown host disicious.com disicious.com none pass pass fail fail report.xml.zip\n208.90.221.45 208-90-221-45.static.flhsi.com disicious.com calendar.trumbee.com none pass pass fail pass report.xml.zip\n```\n\n## Run tests\n\n```bash\nmake install-dev\nmake test\n```\n\n## Development Notes\n\nThis tool was started by [Alex Bolboaca](https://twitter.com/alexboly), with a clear goal: allow easier processing DMARC reports received by email. Alternate tools exist, but they are meant for enterprises, meaning they are either expensive or use a lot of infrastructure.\n\nThe main goal is to see a report of email failures to allow investigation. Therefore, this tool should be minimalistic, extracting the minimum necessary information and requiring a minimum infrastructure.\n\nWhile it's possible to deploy it as a cloud function through a later development of a Docker container, it should also allow running it locally after obtaining the DMARC zipped reports in some way.\n\nThe current version has been developed mostly by [Thierry de Pauw](https://mastodon.social/@tdpauw), so all thanks should go to him :).\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Simple tool to extract error reports from DMARC files",
"version": "0.3.0",
"project_urls": {
"Homepage": "https://github.com/MozaicWorks/DMARCReporting"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "08c8b14f599e0b0aa885b24b798c21ecdf5e0e599731f29fa8c1c562cabc9671",
"md5": "0b2af73377349c50aff54c55ceaeaa02",
"sha256": "20e5a974a5b48b4212652958b6c537ec43b5ec29a69e93cd635a849494c51d54"
},
"downloads": -1,
"filename": "DMARCReporting-0.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0b2af73377349c50aff54c55ceaeaa02",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 7737,
"upload_time": "2023-12-25T12:04:32",
"upload_time_iso_8601": "2023-12-25T12:04:32.808642Z",
"url": "https://files.pythonhosted.org/packages/08/c8/b14f599e0b0aa885b24b798c21ecdf5e0e599731f29fa8c1c562cabc9671/DMARCReporting-0.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9a95bf38a105ed624c2e22135d72c1ef4bfd0d006f6e534f3924cce2cb185f9f",
"md5": "9a3017c7f0e40f67cb36faefb6c5b9f2",
"sha256": "ad91db029ac4d263e09445250b99880e0485255d31e672e9403ac549aeceaf10"
},
"downloads": -1,
"filename": "DMARCReporting-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "9a3017c7f0e40f67cb36faefb6c5b9f2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 9522,
"upload_time": "2023-12-25T12:04:34",
"upload_time_iso_8601": "2023-12-25T12:04:34.476340Z",
"url": "https://files.pythonhosted.org/packages/9a/95/bf38a105ed624c2e22135d72c1ef4bfd0d006f6e534f3924cce2cb185f9f/DMARCReporting-0.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-25 12:04:34",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "MozaicWorks",
"github_project": "DMARCReporting",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "dmarcreporting"
}