Node.js wrapper around the Python pip package authheaders exposing a function to generate Authentication-Results headers
-
Ensure that you have a Python version of >= 3.6 installed.
python3 --version
-
Install the package authheaders from our fork which contains a fix (until ValiMail/authentication-headers#6 is merged and released):
pip3 install git+https://github.com/forwardemail/authentication-headers.git
-
Install dnspython v1.16.0:
pip3 install dnspython==1.16.0
-
Install pyspf:
pip3 install pyspf
npm:
npm install authheaders
yarn:
yarn add authheaders
const fs = require('fs');
const { authenticateMessage } = require('authheaders');
const message = fs.readFileSync('/path/to/example.eml');
const authservId = 'mx.example.com';
const ip = '1.2.3.4';
const mailFrom = 'example.net';
const helo = 'domain.of.sender.example.net';
// then/catch usage
authenticateMessage(message, authservId, ip, mailFrom, helo)
.then(console.log)
.catch(console.error);
// async/await usage
(async () => {
try {
const result = await authenticateMessage(message, authservId, ip, mailFrom, helo);
console.log(result);
} catch (err) {
console.error(err);
}
})();
The value of result
is an Object with properties header
(String), and Objects for spf
, dkim
, arc
, and dmarc
.
These Objects contain a result
(String) and conditionally a reason
(String) value.
An example result
object is provided below:
{
header: 'example.com; spf=none smtp.helo=domain.of.sender.net smtp.mailfrom=test.com; dkim=pass header.d=forwardemail.net; arc=pass; dmarc=fail (Used From Domain Record) header.from=gmail.com policy.dmarc=none',
spf: { result: 'none' },
dkim: { result: 'pass' },
arc: { result: 'pass' },
dmarc: { policy: 'none', result: 'fail', reason: 'Used From Domain Record' }
}
Name | Website |
---|---|
Nick Baugh | http://niftylettuce.com/ |