https://github.com/forwardemail/authheaders
Node.js wrapper around the Python pip package authheaders exposing a function to generate Authentication-Results headers
https://github.com/forwardemail/authheaders
Last synced: about 1 year ago
JSON representation
Node.js wrapper around the Python pip package authheaders exposing a function to generate Authentication-Results headers
- Host: GitHub
- URL: https://github.com/forwardemail/authheaders
- Owner: forwardemail
- License: mit
- Created: 2020-08-05T08:27:54.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2023-12-07T00:06:18.000Z (over 2 years ago)
- Last Synced: 2025-04-20T16:12:28.477Z (about 1 year ago)
- Language: JavaScript
- Size: 437 KB
- Stars: 6
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# authheaders
[](https://travis-ci.com/forwardemail/authheaders)
[](https://codecov.io/gh/forwardemail/authheaders)
[](https://github.com/sindresorhus/xo)
[](https://github.com/prettier/prettier)
[](https://lass.js.org)
[](LICENSE)
[](https://npm.im/authheaders)
> Node.js wrapper around the Python pip package [authheaders][] exposing a function to generate Authentication-Results headers
## Table of Contents
* [Requirements](#requirements)
* [Install](#install)
* [Usage](#usage)
* [authenticateMessage](#authenticatemessage)
* [Contributors](#contributors)
* [License](#license)
## Requirements
1. Ensure that you have a Python version of >= 3.6 installed.
```sh
python3 --version
```
2. Install the package [authheaders][] from our fork which contains a fix (until is merged and released):
```sh
pip3 install git+https://github.com/forwardemail/authentication-headers.git
```
3. Install [dnspython](https://github.com/rthalley/dnspython) v1.16.0:
```sh
pip3 install dnspython==1.16.0
```
4. Install [pyspf](https://pypi.org/project/pyspf/):
```sh
pip3 install pyspf
```
## Install
[npm][]:
```sh
npm install authheaders
```
[yarn][]:
```sh
yarn add authheaders
```
## Usage
### authenticateMessage
```js
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:
```js
{
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' }
}
```
## Contributors
| Name | Website |
| -------------- | -------------------------- |
| **Nick Baugh** | |
## License
[MIT](LICENSE) © [Nick Baugh](http://niftylettuce.com/)
##
[npm]: https://www.npmjs.com/
[yarn]: https://yarnpkg.com/
[authheaders]: https://pypi.org/project/authheaders/