solaris / php-dmarc
A simple DMARC report parser for PHP.
Installs: 464
Dependents: 0
Suggesters: 0
Security: 0
Stars: 63
Watchers: 8
Forks: 20
Open Issues: 0
Requires
- php: >=5.3.0
This package is not auto-updated.
Last update: 2021-11-01 10:47:44 UTC
README
php-dmarc is a small PHP class I wrote to parse DMARC aggregate reports and put the data in a MySQL database for easy analysis. The idea is that when recipients start supporting delivery of reports using HTTP, then this can form part of an endpoint that receives and automatically parses the reports.
Improvements/fixes welcome.
Installation
The library is available on Packagist (solaris/php-dmarc)
and can be installed using Composer. Alternatively you can grab the code directly from GitHub and include the DmarcAggregateParser.php
script directly or via a PSR-0 autoloader.
Usage
-
Set up your database.
tables.sql
contains the SQL needed to set up the tables. -
Use the
Solaris\DmarcAggregateParser
class to parse reports - you need to supply it with database credentials, and then run theparse()
function with an array of files to parse. Something like this:$parser = new Solaris\DmarcAggregateParser( 'dbhost', 'dbuser', 'dbpass', 'dbname' ); $parser->parse( array( 'report-file-1.xml', 'report-file-2.xml', 'report-file-3.xml' ) );
You can supply either XML files or ZIP files. It is assumed that each ZIP file contains only one report.
-
Knock your self out analysing the data.
The parse()
function returns false
if it encounters any errors while parsing the data (true
otherwise). To see what the errors were, use the get_errors()
method, which will return an array of error messages.