Important: This documentation covers Yarn 1 (Classic).
For Yarn 2+ docs and migration guide, see yarnpkg.com.

Package detail

spamassassin-client

valeriansaliou2.7kMIT1.1.0TypeScript support: included

SpamAssassin client, that lets you check if an email is spam or ham.

spamd, spamc, spamassassin, antispam, email, spam, ham

readme

node-spamassassin-client

Test and Build Build and Release NPM Downloads

SpamAssassin client, that lets you check if an email is spam or ham.

This library aims at being as correct and lightweight as possible, built as an alternative to all other SpamAssassin client libraries which are 10+ years old, unmaintained and buggy.

All functions in this library return Promise objects. TypeScript definitions are also provided.

🇸🇮 Crafted in Ljubljana, Slovenia.

Who uses it?

Crisp

👋 You use spamassassin-client and you want to be listed there? Contact me.

How to install?

Include spamassassin-client in your package.json dependencies.

Alternatively, you can run npm install spamassassin-client --save.

How to use?

Check if an email is spam

1. Create a client

var SpamAssassinClient = require("spamassassin-client").SpamAssassinClient;

var spamAssassin = new SpamAssassinClient({
  host : "127.0.0.1"
});

2. Check an email

spamAssassin.check(message)
  .then(function(result) {
    // (Handle result here)
  })
  .catch(function(error) {
    // (Handle error here)
  });

Tunnel to a remote SpamAssassin

If you need to test this library on your local computer, while using a remote SpamAssassin instance, you can easily open a SSH tunnel to this instance:

ssh -L 127.0.0.1:783:[remote_spamd_ip]:783 root@[remote_ssh_hostname]

You will need root permissions to bind to 783 on your local machine, so you might need to sudo.

👉 Make sure to replace `[remotespamd_ip]and[remote_ssh_hostname]` with the IP address SpamAssassin is listening on, and your server hostname._

Available options

Those options can be passed when constructing a new SpamAssassinClient instance:

  • host: the hostname or IP address of the SpamAssassin server (defaults to 127.0.0.1);
  • port: the port of the SpamAssassin server (defaults to 783);
  • timeout: the timeout in seconds of the socket connection to the SpamAssassin server (defaults to 10);

Available methods

Those methods can be called on a SpamAssassinClient instance:

  • spamAssassin.check(message): checks an email for spam, returns Promise<{ score, spam }>;
  • spamAssassin.symbols(message): checks an email for spam and get its symbols, returns Promise<{ score, spam, symbols }>;
  • spamAssassin.report(message): checks an email for spam and generate a report, returns Promise<{ score, spam, report }>;
  • spamAssassin.ping(): checks for the SpamAssassin connection health, returns Promise<{}>;

Note that all methods also return the code and message properties.

changelog

Changelog

1.1.0 (2024-07-25)

New Features

1.0.6 (2024-07-25)

Changes

1.0.5 (2024-07-25)

Bug Fixes

  • Attempt to fix a specific Content-length error from the server [@valeriansaliou].

1.0.4 (2024-07-25)

Bug Fixes

  • Attempt to fix a specific Content-length error from the server [@valeriansaliou].

1.0.3 (2024-07-25)

Bug Fixes

1.0.2 (2024-07-25)

Bug Fixes

  • Fix undefined reference to this.__linesIntoCheckResult() [@valeriansaliou].

1.0.1 (2024-07-25)

Bug Fixes

1.0.0 (2024-07-25)

New Features