spamassassin-client
v1.1.0
Published
SpamAssassin client, that lets you check if an email is spam or ham.
Downloads
145
Maintainers
Readme
node-spamassassin-client
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?
👋 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 [remote_spamd_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 to127.0.0.1
);port
: the port of the SpamAssassin server (defaults to783
);timeout
: the timeout in seconds of the socket connection to the SpamAssassin server (defaults to10
);
Available methods
Those methods can be called on a SpamAssassinClient
instance:
spamAssassin.check(message)
: checks an email for spam, returnsPromise<{ score, spam }>
;spamAssassin.symbols(message)
: checks an email for spam and get its symbols, returnsPromise<{ score, spam, symbols }>
;spamAssassin.report(message)
: checks an email for spam and generate a report, returnsPromise<{ score, spam, report }>
;spamAssassin.ping()
: checks for the SpamAssassin connection health, returnsPromise<{}>
;
Note that all methods also return the code
and message
properties.