{"id":13569749,"url":"https://github.com/keltia/dmarc-cat","last_synced_at":"2025-10-22T06:29:26.661Z","repository":{"id":29785503,"uuid":"122772673","full_name":"keltia/dmarc-cat","owner":"keltia","description":"Small utility to decode the report sent by various email providers  following the DMARC spec","archived":false,"fork":false,"pushed_at":"2023-01-05T13:38:02.000Z","size":120,"stargazers_count":64,"open_issues_count":8,"forks_count":13,"subscribers_count":7,"default_branch":"master","last_synced_at":"2024-11-05T02:35:45.326Z","etag":null,"topics":["dmarc-parser","dmarc-reports","golang"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keltia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-02-24T19:31:30.000Z","updated_at":"2024-11-03T14:53:24.000Z","dependencies_parsed_at":"2023-01-14T15:39:05.469Z","dependency_job_id":null,"html_url":"https://github.com/keltia/dmarc-cat","commit_stats":null,"previous_names":[],"tags_count":24,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keltia%2Fdmarc-cat","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keltia%2Fdmarc-cat/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keltia%2Fdmarc-cat/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keltia%2Fdmarc-cat/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keltia","download_url":"https://codeload.github.com/keltia/dmarc-cat/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247134401,"owners_count":20889396,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dmarc-parser","dmarc-reports","golang"],"created_at":"2024-08-01T14:00:43.698Z","updated_at":"2025-10-22T06:29:21.630Z","avatar_url":"https://github.com/keltia.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# README.md\n\n## Status\n\n[![GitHub release](https://img.shields.io/github/release/keltia/dmarc-cat.svg)](https://github.com/keltia/dmarc-cat/releases/)\n[![GitHub issues](https://img.shields.io/github/issues/keltia/dmarc-cat.svg)](https://github.com/keltia/dmarc-cat/issues)\n[![Go Version](https://img.shields.io/badge/go-1.10-blue.svg)](https://golang.org/dl/)\n[![Build Status](https://travis-ci.org/keltia/dmarc-cat.svg?branch=master)](https://travis-ci.org/keltia/dmarc-cat)\n[![GoDoc](http://godoc.org/github.com/keltia/dmarc-cat?status.svg)](http://godoc.org/github.com/keltia/dmarc-cat)\n[![SemVer](https://img.shields.io/badge/semver-2.0.0-blue)](https://semver.org/spec/v2.0.0.html)\n[![License](https://img.shields.io/badge/License-BSD-blue)](https://opensource.org/licenses/BSD-2-Clause)\n[![Go Report Card](https://goreportcard.com/badge/github.com/keltia/dmarc-cat)](https://goreportcard.com/report/github.com/keltia/dmarc-cat)\n\n## Summary\n\n`dmarc-cat` is a small command-line utility to analyze and display in a usable manner the content of the DMARC XML reports sent by the various email providers around the globe.  Should work properly on UNIX (FreeBSD, Linux, etc.) and now Windows systems.\n\n## Installation\n\nAs with many Go utilities, a simple\n\n    go get github.com/keltia/dmarc-cat\n\nis enough to fetch, build and install.  On some systems you may need to add some environment variables to enable the Go and C compilers to find the `gpgme` include files and libraries.\n\n    CGO_CFLAGS=\"-I/usr/local/include\" CGO_LDFLAGS=\"-L/usr/local/lib\" go get ...\n\nOn Windows systems, GPG support is disabled in the `archive` module so you don't need to compile any non-Go code and the above `go get` command should work directly in a Powershell window.\n\n### Linux\n\n#### Arch Linux\n[![dmarc-cat on AUR](https://img.shields.io/aur/version/dmarc-cat?label=dmarc-cat)](https://aur.archlinux.org/packages/dmarc-cat/)\n[![dmarc-cat-git on AUR](https://img.shields.io/aur/version/dmarc-cat-git?label=dmarc-cat-git)](https://aur.archlinux.org/packages/dmarc-cat-git/)\n\nDmarc-cat is available on the [AUR](https://wiki.archlinux.org/index.php/Arch_User_Repository):\n- [dmarc-cat](https://aur.archlinux.org/packages/dmarc-cat/) (release package)\n- [dmarc-cat-git](https://aur.archlinux.org/packages/dmarc-cat-git/) (git package)\n\nYou can install it using your [AUR helper](https://wiki.archlinux.org/index.php/AUR_helpers) of choice.\n\nExample:\n```console\n$ yay -Sy dmarc-cat\n```\n\n## Dependencies\n\nAside from the standard library, I use `github.com/intel/tfortools` to generate tables.\n\n    go get -u github.com/intel/tfortools\n\nIt also use my own module `github.com/keltia/archive` to handle the various archive types.\n\nIf you use Go modules, it should all work automatically.\n\n## Usage\n\nSYNOPSIS\n```\ndmarc-cat -hvDN [-j N] [-t type] [-S sort] [-version] \u003czipfile|xmlfile\u003e\n\nUsage of ./dmarc-cat:\n  -D\tDebug mode\n  -N\tDo not resolve IPs\n  -S string\n    \tSort results (default \"\\\"Count\\\" \\\"dsc\\\"\")\n  -j int\n    \tParallel jobs (default 8)\n  -t string\n    \tFile type for stdin mode\n  -v\tVerbose mode\n  -version\n    \tDisplay version\n    \t\nExample:\n\n$ dmarc-cat /tmp/yahoo.com\\!keltia.net\\!1518912000\\!1518998399.xml\n\nReporting by: Yahoo! Inc. — postmaster@dmarc.yahoo.com\nFrom 2018-02-18 01:00:00 +0100 CET to 2018-02-19 00:59:59 +0100 CET\n\nDomain: keltia.net\nPolicy: p=none; dkim=r; spf=r\n\nReports(1):\nIP            Count   From       RFrom      RDKIM   RSPF\n88.191.250.24 1       keltia.net keltia.net neutral pass\n```\n\n## Columns\n\nThe full XML grammar is available [here](https://tools.ietf.org/html/rfc7489#appendix-C)\n\nThe report has several columns:\n\n- `IP` is matching IP address\n- `Count` is the number of times this IP was present\n- `From` is the `From:` header value\n- `RFrom` is the envelope `From` value\n- `RDKIM` is the result from DKIM checking\n- `RSPF` is the result from SPF checking\n\n## Supported formats\n\nThe file sent by MTAs can differ in format, some providers send zip files with both csv and XML files, some directly send compressed XML files.  The `archive` module should support all these, please open an issue if not.\n\n## Tests\n\nGetting close to 90% coverage.\n\n## License\n\nThis is released under the BSD 2-Clause license.  See `LICENSE.md`.\n\n## References\n\n- [DMARC](https://dmarc.org/)\n- [SPF](http://www.rfc-editor.org/info/rfc7208)\n- [DKIM](http://www.rfc-editor.org/info/rfc6376)\n- [archive](https://github.com/keltia/archive/)\n\n## Contributing\n\nI use Git Flow for this package so please use something similar or the usual github workflow.\n\n1. Fork it ( https://github.com/keltia/dmarc-cat/fork )\n2. Checkout the develop branch (`git checkout develop`)\n3. Create your feature branch (`git checkout -b my-new-feature`)\n4. Commit your changes (`git commit -am 'Add some feature'`)\n5. Push to the branch (`git push origin my-new-feature`)\n6. Create a new Pull Request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeltia%2Fdmarc-cat","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeltia%2Fdmarc-cat","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeltia%2Fdmarc-cat/lists"}