To create your own plugin, see:
- the plugin template that includes all the boilerplate
- the Write a Plugin tutorial
- the Plugins section of the manual
NPM packaged plugins can be installed in the npm directory where Haraka was installed (where depends on your OS platform and whether you specified -g) or the Haraka install directory (haraka -i this_path). This example installs my-great-plugin in the Haraka install directory:
cd /etc/haraka
npm install haraka-plugin-my-great-plugin
NPM then installs the plugin and its dependencies in a node_modules directory within the Haraka install directory.
A mostly comprehensive list of plugins known to be working and maintained. Create a PR adding yours to this list.
| Plugin | Description |
|---|---|
| access | ACLs based on IPs, domains, email addrs, etc. |
| accounting_files | Retrieve, Store and Archive custom information of outbound traffic |
| aliases | Email aliases |
| ASN | Get ASN info for remote senders |
| attachment | Restrict attachment types |
| auth-enc-file | Auth against user/pass in an encrypted file |
| auth/flat_file | Auth against user/pass in a file |
| auth/auth_bridge | Auth against remote MTA |
| auth-imap | Auth against IMAP server |
| auth/auth_ldap | Auth against LDAP |
| auth/auth_proxy | Auth against remote MTA |
| auth/auth_vpopmaild | Auth against vpopmaild |
| avg | AVG antivirus scanner |
| backscatterer | Check remote IP against ips.backscatterer.org |
| block_me | Populate block list via forwarded emails |
| bounce | Many options for bounce processing |
| clamd | Anti-Virus scanning with ClamAV |
| connect.p0f | TCP Fingerprinting |
| data.headers | Inspect and verify various email headers |
| data.signatures | Block emails whose bodies match signatures |
| data.uribl | Block based on URI blacklists |
| dcc | Distributed Checksum Clearinghouse |
| delay_deny | Delays all pre-DATA 'deny' results |
| dkim_sign | DKIM sign outbound messages |
| dkim_verify | Verify DKIM signatures on incoming messages |
| opendkim | DKIM sign and verify email messages |
| dnsbl | Check remote MTAs against DNS blacklists |
| dnswl | Check remote MTAs against DNS whitelists |
| dovecot | Recipient validation & SMTP AUTH against dovecot |
| early_talker | Reject remotes that talk early |
| esets | Virus scanning with ESET Mail Security |
| fcrdns | Forward Confirmed reverse DNS |
| geoip | get geographic information about mail senders |
| greylist | Greylisting |
| helo.checks | Validaty checks of the HELO string |
| karma | Dynamic scoring of incoming connections |
| known-senders | Reward emails from those you send mail to |
| LDAP | Aliases, Auth, and Recipient validation from LDAP |
| Limit | Apply many types of limits to SMTP connections |
| log.elasticsearch | Store message metadata in Elasticsearch |
| log reader | extract log entries from the haraka log file |
| syslog | Log to syslog |
| mail_from.is_resolvable | Verifies the MAIL FROM domain resolves to a MX |
| messagesniffer | Anti-spam via MessageSniffer |
| milter | milter support |
| mongodb | Queue emails to MongoDB |
| prevent_credential_leaks | Prevent users from emailing their credentials |
| process_title | Populate ps output with activity counters |
| queue/discard | queues messages to /dev/null |
| queue/lmtp | deliver queued messages via LMTP |
| queue/qmail-queue | queue to qmail |
| queue/quarantine | queue to a quarantine directory |
| queue/rabbitmq | queue to RabbitMQ |
| queue/rabbitmq_amqplib | queue to RabbitMQ using amqplib |
| queue/smtp_bridge | Bridge SMTP sessions to another MTA |
| queue/smtp_forward | Forward emails to another MTA |
| queue/smtp_proxy | Proxy SMTP connections to another MTA |
| recipient-routes | Route emails based on their recipient(s) |
| redis | multi-purpose Redis db connection(s) |
| rcpt_to.in_host_list | Define local email domains in a file |
| rcpt_to.ldap | Validate recipients against LDAP |
| rcpt-postgresql | validate recipients against PostgreSQL |
| rcpt_to.qmail_deliverable | Validate recipients against Qmail-Deliverable |
| record_envelope_addresses | Adds message headers with ENV recips |
| relay | Manage relay permissions |
| reseed_rng | Reseed the RNG |
| rspamd | Scan emails with rspamd |
| spamassassin | Scan emails with SpamAssassin |
| spf | Perform SPF checks |
| srs | Sender Rewriting Scheme |
| tarpit | Slow down connections |
| tls | Implements TLS |
| toobusy | Defers connections when too busy |
| vmta | Virtual MTA management |
| watch | Watch live SMTP traffic in a web interface |
| wildduck | provides recipient checks against Wild Duck |
| xclient | Implements XCLIENT |