The DMARC reports are received on email attachments in XML format (compressed). I don't know a default viewer and we receive one file by day by external domain. I needed join the data and build a visual report.
I decided build a script that:
- Access the dmarc mail account
- Reads the messages
- Extracts the attachments and
- consolidate the data to show some graphs in a webserver.
git clone https://github.com/hitalos/dmarc-report
npm i --only=production
npm i dmarc-report
Copy or rename .env-example
to .env
and set the values to your environment.
Use a exclusive account to this or choose a folder in your account, move the reports to it and set it to IMAP_FOLDER.
npm start
Example:
const express = require('express')
const dmarc = require('dmarc-report')
const app = express()
app.use('/dmarc', dmarc)
app.listen(3000)
SERVER_PORT
has no effect when running as a middleware
Certify yourself that expose environment variables or use dotenv
module to load it.
.env
example:
IMAP_HOST=yourdomain.com
IMAP_USER=dmarc
IMAP_PASS=password
IMAP_FOLDER=INBOX
IMAP_READ_ONLY=1
SERVER_PORT=3000