Haraka 3.0.3 → 3.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.yaml +5 -9
- package/.prettierrc.yml +1 -0
- package/CONTRIBUTORS.md +11 -0
- package/Changes.md +1365 -1214
- package/Plugins.md +117 -105
- package/README.md +4 -13
- package/bin/haraka +197 -298
- package/config/auth_flat_file.ini +1 -0
- package/config/dhparams.pem +8 -0
- package/config/mail_from.is_resolvable.ini +4 -2
- package/config/me +1 -0
- package/config/outbound.ini +0 -2
- package/config/plugins +36 -35
- package/config/smtp.ini +0 -1
- package/config/smtp.json +17 -0
- package/config/tls_cert.pem +23 -0
- package/config/tls_key.pem +28 -0
- package/connection.js +46 -73
- package/contrib/bsd-rc.d/haraka +3 -1
- package/contrib/plugin2npm.sh +6 -36
- package/docs/CoreConfig.md +2 -2
- package/docs/Logging.md +7 -21
- package/docs/Outbound.md +104 -201
- package/docs/Plugins.md +2 -2
- package/docs/Transaction.md +59 -82
- package/docs/plugins/queue/smtp_proxy.md +5 -10
- package/docs/plugins/tls.md +29 -9
- package/endpoint.js +16 -13
- package/haraka.js +10 -14
- package/host_pool.js +5 -5
- package/line_socket.js +3 -4
- package/logger.js +44 -28
- package/outbound/client_pool.js +27 -23
- package/outbound/config.js +4 -6
- package/outbound/fsync_writestream.js +1 -1
- package/outbound/hmail.js +178 -218
- package/outbound/index.js +86 -99
- package/outbound/qfile.js +1 -1
- package/outbound/queue.js +51 -44
- package/outbound/timer_queue.js +3 -2
- package/outbound/tls.js +19 -7
- package/package.json +59 -48
- package/plugins/.eslintrc.yaml +0 -6
- package/plugins/auth/auth_base.js +4 -2
- package/plugins/auth/auth_proxy.js +14 -12
- package/plugins/auth/auth_vpopmaild.js +1 -1
- package/plugins/block_me.js +1 -1
- package/plugins/data.signatures.js +2 -4
- package/plugins/early_talker.js +2 -1
- package/plugins/mail_from.is_resolvable.js +65 -135
- package/plugins/queue/deliver.js +4 -5
- package/plugins/queue/lmtp.js +11 -14
- package/plugins/queue/qmail-queue.js +2 -2
- package/plugins/queue/quarantine.js +2 -2
- package/plugins/queue/rabbitmq.js +16 -17
- package/plugins/queue/smtp_forward.js +3 -3
- package/plugins/queue/smtp_proxy.js +10 -1
- package/plugins/queue/test.js +2 -2
- package/plugins/rcpt_to.host_list_base.js +5 -5
- package/plugins/rcpt_to.in_host_list.js +2 -2
- package/plugins/relay.js +6 -7
- package/plugins/reseed_rng.js +1 -1
- package/plugins/status.js +37 -33
- package/plugins/tls.js +2 -2
- package/plugins/xclient.js +3 -2
- package/plugins.js +50 -54
- package/run_tests +3 -30
- package/server.js +190 -190
- package/smtp_client.js +30 -23
- package/{tests → test}/config/plugins +0 -2
- package/{tests → test}/config/smtp.ini +1 -1
- package/test/config/tls/example.com/_.example.com.key +28 -0
- package/test/config/tls/example.com/example.com.crt +25 -0
- package/test/connection.js +302 -0
- package/test/endpoint.js +94 -0
- package/{tests → test}/fixtures/line_socket.js +1 -1
- package/{tests → test}/fixtures/util_hmailitem.js +19 -25
- package/{tests → test}/host_pool.js +42 -57
- package/test/logger.js +258 -0
- package/test/outbound/hmail.js +141 -0
- package/test/outbound/index.js +220 -0
- package/test/outbound/qfile.js +126 -0
- package/test/outbound_bounce_net_errors.js +142 -0
- package/{tests → test}/outbound_bounce_rfc3464.js +110 -122
- package/test/plugins/auth/auth_base.js +484 -0
- package/test/plugins/auth/auth_vpopmaild.js +83 -0
- package/test/plugins/early_talker.js +104 -0
- package/test/plugins/mail_from.is_resolvable.js +35 -0
- package/test/plugins/queue/smtp_forward.js +206 -0
- package/test/plugins/rcpt_to.host_list_base.js +122 -0
- package/test/plugins/rcpt_to.in_host_list.js +193 -0
- package/test/plugins/relay.js +303 -0
- package/test/plugins/status.js +130 -0
- package/test/plugins/tls.js +70 -0
- package/test/plugins.js +228 -0
- package/test/rfc1869.js +73 -0
- package/test/server.js +491 -0
- package/test/smtp_client.js +299 -0
- package/test/tls_socket.js +273 -0
- package/test/transaction.js +270 -0
- package/tls_socket.js +202 -252
- package/transaction.js +8 -23
- package/CONTRIBUTING.md +0 -1
- package/bin/dkimverify +0 -40
- package/config/access.domains +0 -13
- package/config/attachment.ctype.regex +0 -2
- package/config/attachment.filename.regex +0 -1
- package/config/avg.ini +0 -5
- package/config/bounce.ini +0 -15
- package/config/data.headers.ini +0 -61
- package/config/dkim/dkim_key_gen.sh +0 -78
- package/config/dkim_sign.ini +0 -4
- package/config/dkim_verify.ini +0 -7
- package/config/dnsbl.ini +0 -23
- package/config/greylist.ini +0 -43
- package/config/helo.checks.ini +0 -52
- package/config/messagesniffer.ini +0 -18
- package/config/spamassassin.ini +0 -56
- package/dkim.js +0 -614
- package/docs/plugins/avg.md +0 -35
- package/docs/plugins/bounce.md +0 -69
- package/docs/plugins/clamd.md +0 -147
- package/docs/plugins/esets.md +0 -8
- package/docs/plugins/greylist.md +0 -90
- package/docs/plugins/helo.checks.md +0 -135
- package/docs/plugins/messagesniffer.md +0 -163
- package/docs/plugins/spamassassin.md +0 -180
- package/outbound/mx_lookup.js +0 -70
- package/plugins/auth/auth_ldap.js +0 -3
- package/plugins/avg.js +0 -162
- package/plugins/backscatterer.js +0 -25
- package/plugins/bounce.js +0 -381
- package/plugins/clamd.js +0 -382
- package/plugins/data.uribl.js +0 -4
- package/plugins/dkim_sign.js +0 -395
- package/plugins/dkim_verify.js +0 -62
- package/plugins/dns_list_base.js +0 -221
- package/plugins/dnsbl.js +0 -146
- package/plugins/dnswl.js +0 -58
- package/plugins/esets.js +0 -71
- package/plugins/graph.js +0 -5
- package/plugins/greylist.js +0 -645
- package/plugins/helo.checks.js +0 -533
- package/plugins/messagesniffer.js +0 -381
- package/plugins/rcpt_to.ldap.js +0 -3
- package/plugins/rcpt_to.max_count.js +0 -24
- package/plugins/spamassassin.js +0 -384
- package/tests/config/dkim/example.com/dns +0 -29
- package/tests/config/dkim/example.com/private +0 -6
- package/tests/config/dkim/example.com/public +0 -4
- package/tests/config/dkim/example.com/selector +0 -1
- package/tests/config/dkim.private.key +0 -6
- package/tests/config/dkim_sign.ini +0 -4
- package/tests/config/helo.checks.ini +0 -52
- package/tests/connection.js +0 -327
- package/tests/endpoint.js +0 -128
- package/tests/fixtures/vm_harness.js +0 -59
- package/tests/logger.js +0 -327
- package/tests/outbound/hmail.js +0 -112
- package/tests/outbound/index.js +0 -324
- package/tests/outbound/qfile.js +0 -67
- package/tests/outbound_bounce_net_errors.js +0 -173
- package/tests/plugins/auth/auth_base.js +0 -463
- package/tests/plugins/auth/auth_vpopmaild.js +0 -91
- package/tests/plugins/bounce.js +0 -307
- package/tests/plugins/clamd.js +0 -224
- package/tests/plugins/deprecated/relay_acl.js +0 -140
- package/tests/plugins/deprecated/relay_all.js +0 -59
- package/tests/plugins/dkim_sign.js +0 -315
- package/tests/plugins/dkim_signer.js +0 -108
- package/tests/plugins/dns_list_base.js +0 -259
- package/tests/plugins/dnsbl.js +0 -101
- package/tests/plugins/early_talker.js +0 -115
- package/tests/plugins/greylist.js +0 -58
- package/tests/plugins/helo.checks.js +0 -525
- package/tests/plugins/mail_from.is_resolvable.js +0 -116
- package/tests/plugins/queue/smtp_forward.js +0 -221
- package/tests/plugins/rcpt_to.host_list_base.js +0 -132
- package/tests/plugins/rcpt_to.in_host_list.js +0 -218
- package/tests/plugins/relay.js +0 -339
- package/tests/plugins/spamassassin.js +0 -171
- package/tests/plugins/status.js +0 -138
- package/tests/plugins/tls.js +0 -84
- package/tests/plugins.js +0 -247
- package/tests/rfc1869.js +0 -61
- package/tests/server.js +0 -510
- package/tests/smtp_client/auth.js +0 -105
- package/tests/smtp_client/basic.js +0 -101
- package/tests/smtp_client.js +0 -80
- package/tests/tls_socket.js +0 -333
- package/tests/transaction.js +0 -284
- /package/docs/{plugins → deprecated}/dkim_sign.md +0 -0
- /package/docs/{plugins → deprecated}/dkim_verify.md +0 -0
- /package/docs/{plugins → deprecated}/dnsbl.md +0 -0
- /package/docs/{plugins → deprecated}/dnswl.md +0 -0
- /package/{tests → test}/.eslintrc.yaml +0 -0
- /package/{tests → test}/config/auth_flat_file.ini +0 -0
- /package/{tests → test}/config/dhparams.pem +0 -0
- /package/{tests → test}/config/host_list +0 -0
- /package/{tests → test}/config/outbound_tls_cert.pem +0 -0
- /package/{tests → test}/config/outbound_tls_key.pem +0 -0
- /package/{tests → test}/config/smtp_forward.ini +0 -0
- /package/{tests → test}/config/tls/ec.pem +0 -0
- /package/{tests → test}/config/tls/haraka.local.pem +0 -0
- /package/{tests → test}/config/tls/mismatched.pem +0 -0
- /package/{tests → test}/config/tls.ini +0 -0
- /package/{tests → test}/config/tls_cert.pem +0 -0
- /package/{tests → test}/config/tls_key.pem +0 -0
- /package/{tests → test}/fixtures/todo_qfile.txt +0 -0
- /package/{tests → test}/installation/config/test-plugin-flat +0 -0
- /package/{tests → test}/installation/config/test-plugin.ini +0 -0
- /package/{tests → test}/installation/config/tls.ini +0 -0
- /package/{tests → test}/installation/node_modules/load_first/index.js +0 -0
- /package/{tests → test}/installation/node_modules/load_first/package.json +0 -0
- /package/{tests → test}/installation/node_modules/test-plugin/config/test-plugin-flat +0 -0
- /package/{tests → test}/installation/node_modules/test-plugin/config/test-plugin.ini +0 -0
- /package/{tests → test}/installation/node_modules/test-plugin/package.json +0 -0
- /package/{tests → test}/installation/node_modules/test-plugin/test-plugin.js +0 -0
- /package/{tests → test}/installation/plugins/base_plugin.js +0 -0
- /package/{tests → test}/installation/plugins/folder_plugin/index.js +0 -0
- /package/{tests → test}/installation/plugins/folder_plugin/package.json +0 -0
- /package/{tests → test}/installation/plugins/inherits.js +0 -0
- /package/{tests → test}/installation/plugins/load_first.js +0 -0
- /package/{tests → test}/installation/plugins/plugin.js +0 -0
- /package/{tests → test}/installation/plugins/tls.js +0 -0
- /package/{tests → test}/loud/config/dhparams.pem +0 -0
- /package/{tests → test}/loud/config/tls/goobered.pem +0 -0
- /package/{tests → test}/loud/config/tls.ini +0 -0
- /package/{tests → test}/mail_specimen/base64-root-part.txt +0 -0
- /package/{tests → test}/mail_specimen/varied-fold-lengths-preserve-data.txt +0 -0
- /package/{tests → test}/queue/1507509981169_1507509981169_0_61403_e0Y0Ym_1_fixed +0 -0
- /package/{tests → test}/queue/1507509981169_1507509981169_0_61403_e0Y0Ym_1_haraka +0 -0
- /package/{tests → test}/queue/1508269674999_1508269674999_0_34002_socVUF_1_haraka +0 -0
- /package/{tests → test}/queue/1508455115683_1508455115683_0_90253_9Q4o4V_1_haraka +0 -0
- /package/{tests → test}/queue/multibyte +0 -0
- /package/{tests → test}/queue/plain +0 -0
- /package/{tests → test}/queue/zero-length +0 -0
- /package/{tests → test}/test-queue/delete-me +0 -0
package/Plugins.md
CHANGED
|
@@ -1,114 +1,126 @@
|
|
|
1
1
|
# Haraka Plugins
|
|
2
2
|
|
|
3
|
-
To create your own plugin, see
|
|
4
|
-
- the [plugin template][template] that includes all the boilerplate
|
|
5
|
-
- the [Write a Plugin][write-plugin] tutorial
|
|
6
|
-
- the [Plugins][plugins-doc] section of [the manual](https://haraka.github.io)
|
|
3
|
+
To create your own plugin, see [Write a Plugin][write-plugin].
|
|
7
4
|
|
|
8
5
|
## Installing NPM packaged plugins
|
|
9
6
|
|
|
10
|
-
|
|
7
|
+
Plugins can be installed in the 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:
|
|
11
8
|
|
|
12
|
-
|
|
9
|
+
```
|
|
13
10
|
cd /etc/haraka
|
|
14
11
|
npm install haraka-plugin-my-great-plugin
|
|
15
|
-
|
|
12
|
+
```
|
|
16
13
|
|
|
17
14
|
NPM then installs the plugin and its dependencies in a `node_modules` directory within the Haraka install directory.
|
|
18
15
|
|
|
19
16
|
## Plugin Registry
|
|
20
17
|
|
|
21
|
-
A
|
|
22
|
-
Create a PR adding yours to this list.
|
|
23
|
-
|
|
24
|
-
| Plugin | Description |
|
|
25
|
-
| ------------------------- | ------------- |
|
|
26
|
-
| [access][url-access] | ACLs based on IPs, domains, email addrs, etc. |
|
|
27
|
-
| [accounting_files][url-acc-files] | Retrieve, Store and Archive custom information of outbound traffic |
|
|
28
|
-
| [aliases][url-aliases] | Email aliases |
|
|
29
|
-
| [ASN][url-asn] | Get ASN info for remote senders |
|
|
30
|
-
| [attachment][url-attach] | Restrict attachment types |
|
|
31
|
-
| [auth-enc-file][url-authencflat] | Auth against user/pass in an encrypted file |
|
|
32
|
-
| auth/[flat_file][url-authflat] | Auth against user/pass in a file |
|
|
33
|
-
| auth/[auth_bridge][url-authbridge] | Auth against remote MTA |
|
|
34
|
-
| [auth-imap][url-auth-imap] | Auth against IMAP server |
|
|
35
|
-
| auth/[auth_ldap][url-auth-ldap] | Auth against LDAP |
|
|
36
|
-
| auth/[auth_proxy][url-authproxy] | Auth against remote MTA |
|
|
37
|
-
| auth/[auth_vpopmaild][url-authvpop] | Auth against vpopmaild |
|
|
38
|
-
| [avg][url-avg] | AVG antivirus scanner |
|
|
39
|
-
| [backscatterer][url-scatter] | Check remote IP against ips.backscatterer.org |
|
|
40
|
-
| [block_me][url-blockme] | Populate block list via forwarded emails |
|
|
41
|
-
| [bounce][url-bounce] | Many options for bounce processing |
|
|
42
|
-
| [clamd][url-clamd] | Anti-Virus scanning with ClamAV |
|
|
43
|
-
| [data.signatures][url-sigs] | Block emails whose bodies match signatures |
|
|
44
|
-
| [uribl][url-uribl] | Block based on URI blacklists |
|
|
45
|
-
| [dcc][url-dcc] | Distributed Checksum Clearinghouse |
|
|
46
|
-
| [delay_deny][url-delay] | Delays all pre-DATA 'deny' results |
|
|
47
|
-
| [dkim_sign][url-sign] | DKIM sign outbound messages |
|
|
48
|
-
| [dkim_verify][url-dkimv] | Verify DKIM signatures on incoming messages |
|
|
49
|
-
| [opendkim][url-opendkim] | DKIM sign and verify email messages |
|
|
50
|
-
| [dnsbl][url-dnsbl] | Check remote MTAs against DNS blacklists |
|
|
51
|
-
| [dnswl][url-dnswl] | Check remote MTAs against DNS whitelists |
|
|
52
|
-
| [dovecot][url-dovecot] | Recipient validation & SMTP AUTH against dovecot |
|
|
53
|
-
| [early_talker][url-early] | Reject remotes that talk early |
|
|
54
|
-
| [esets][url-esets] | Virus scanning with ESET Mail Security |
|
|
55
|
-
| [fcrdns][url-fcrdns] | Forward Confirmed reverse DNS |
|
|
56
|
-
| [geoip][url-geoip] | get geographic information about mail senders |
|
|
57
|
-
| [greylist][url-greylist] | Greylisting |
|
|
58
|
-
| [headers][url-headers] | Inspect and verify various email headers |
|
|
59
|
-
| [helo.checks][url-helo] | Validaty checks of the HELO string |
|
|
60
|
-
| [karma][url-karma] | Dynamic scoring of incoming connections |
|
|
61
|
-
| [known-senders][url-known-senders] | Reward emails from those you send mail to |
|
|
62
|
-
| [LDAP][url-ldap] | Aliases, Auth, and Recipient validation from LDAP |
|
|
63
|
-
| [Limit][url-limit] | Apply many types of limits to SMTP connections |
|
|
64
|
-
| [log.elasticsearch][url-elastic] | Store message metadata in Elasticsearch |
|
|
65
|
-
| [log reader][url-logreader] | extract log entries from the haraka log file |
|
|
66
|
-
| [syslog][url-syslog] | Log to syslog |
|
|
67
|
-
| [mail_from.is_resolvable][url-mfres] | Verifies the MAIL FROM domain resolves to a MX |
|
|
68
|
-
| [messagesniffer][url-msgsniff] | Anti-spam via [MessageSniffer][url-ms] |
|
|
69
|
-
| [milter][url-milter] | milter support |
|
|
70
|
-
| [mongodb][mongo-url] | Queue emails to MongoDB |
|
|
71
|
-
| [outbound-logger][url-outbound-logger] | JSON logging of outbound email traffic. Logs useful metadata about delivered/bounced emails |
|
|
72
|
-
| [p0f][url-p0f] | TCP Fingerprinting |
|
|
73
|
-
| [prevent_credential_leaks][url-creds] | Prevent users from emailing their credentials |
|
|
74
|
-
| [process_title][url-proctitle] | Populate `ps` output with activity counters |
|
|
75
|
-
| queue/[discard][url-qdisc] | queues messages to /dev/null |
|
|
76
|
-
| queue/[lmtp][url-qlmtp] | deliver queued messages via LMTP |
|
|
77
|
-
| queue/[qmail-queue][url-qmail] | queue to qmail |
|
|
78
|
-
| queue/[quarantine][url-qquart] | queue to a quarantine directory |
|
|
79
|
-
| queue/[rabbitmq][url-qrabbit] | queue to RabbitMQ |
|
|
80
|
-
| queue/[rabbitmq_amqplib][url-qrabbita] | queue to RabbitMQ using amqplib |
|
|
81
|
-
| queue/[rails][url-qrails] | queue messages to a Rails app using [Action Mailbox][url-action-mailbox] |
|
|
82
|
-
| queue/[smtp_bridge][url-qbridge] | Bridge SMTP sessions to another MTA |
|
|
83
|
-
| queue/[smtp_forward][url-qforward] | Forward emails to another MTA |
|
|
84
|
-
| queue/[smtp_proxy][url-qproxy] | Proxy SMTP connections to another MTA |
|
|
85
|
-
| [queue-kafka][url-kafka] | Queue inbound mail to a Kafka topic |
|
|
86
|
-
| [recipient-routes][url-rroutes] | Route emails based on their recipient(s) |
|
|
87
|
-
| [redis][url-redis] | multi-purpose Redis db connection(s) |
|
|
88
|
-
| [rcpt_to.in_host_list][url-rhost] | Define local email domains in a file |
|
|
89
|
-
| [rcpt_to.ldap][url-rcpt-ldap] | Validate recipients against LDAP |
|
|
90
|
-
| [rcpt-postgresql][url-postgres] | validate recipients against PostgreSQL
|
|
91
|
-
| [rcpt_to.qmail_deliverable][url-rqmd] | Validate recipients against Qmail-Deliverable |
|
|
92
|
-
| [record_envelope_addresses][url-recordenv] | Adds message headers with ENV recips |
|
|
93
|
-
| [relay][url-relay] | Manage relay permissions |
|
|
94
|
-
| [reseed_rng][url-rng] | Reseed the RNG |
|
|
95
|
-
| [rspamd][url-rspamd] | Scan emails with rspamd |
|
|
96
|
-
| [spamassassin][url-spamass] | Scan emails with SpamAssassin |
|
|
97
|
-
| [spf][url-spf] | Perform SPF checks |
|
|
98
|
-
| [srs][url-srs] | Sender Rewriting Scheme |
|
|
99
|
-
| [tarpit][url-tarpit] | Slow down connections |
|
|
100
|
-
| [tls][url-tls] | Implements TLS |
|
|
101
|
-
| [toobusy][url-toobusy] | Defers connections when too busy |
|
|
102
|
-
| [vmta][url-vmta] | Virtual MTA management |
|
|
103
|
-
| [watch][url-watch] | Watch live SMTP traffic in a web interface |
|
|
104
|
-
| [wildduck][url-wildduck] | provides recipient checks against Wild Duck |
|
|
105
|
-
| [xclient][url-xclient] | Implements XCLIENT |
|
|
18
|
+
A comprehensive list of known plugins. Create a PR to add yours to these lists.
|
|
106
19
|
|
|
20
|
+
### Auth Plugins
|
|
107
21
|
|
|
22
|
+
| Name | Description |
|
|
23
|
+
| -------------------------------- | ------------------------------------------------- |
|
|
24
|
+
| [auth-enc-file][url-authencflat] | Auth against user/pass in an encrypted file |
|
|
25
|
+
| [flat_file][url-authflat] | Auth against user/pass in a file |
|
|
26
|
+
| [auth_bridge][url-authbridge] | Auth against remote MTA |
|
|
27
|
+
| [auth-imap][url-auth-imap] | Auth against IMAP server |
|
|
28
|
+
| [auth_ldap][url-auth-ldap] | Auth against LDAP |
|
|
29
|
+
| [auth_proxy][url-authproxy] | Auth against remote MTA |
|
|
30
|
+
| [auth_vpopmaild][url-authvpop] | Auth against vpopmaild |
|
|
31
|
+
| [dkim][url-dkim] | DKIM sign & verify |
|
|
32
|
+
| [dovecot][url-dovecot] | SMTP AUTH & recipient validation against dovecot |
|
|
33
|
+
| [LDAP][url-ldap] | Aliases, Auth, and Recipient validation from LDAP |
|
|
34
|
+
| [mailauth][url-mailauth] | Email Auth (SPF, DKIM, DMARC, ARC, & BIMI) |
|
|
35
|
+
| [opendkim][url-opendkim] | DKIM sign and verify email messages |
|
|
36
|
+
| [spf][url-spf] | Perform SPF checks |
|
|
37
|
+
|
|
38
|
+
### Queue Plugins
|
|
39
|
+
|
|
40
|
+
| Name | Description |
|
|
41
|
+
| -------------------------------- | ------------------------------------------------------------------------ |
|
|
42
|
+
| [discard][url-qdisc] | queues messages to /dev/null |
|
|
43
|
+
| [kafka][url-kafka] | Queue inbound mail to a Kafka topic |
|
|
44
|
+
| [lmtp][url-qlmtp] | deliver queued messages via LMTP |
|
|
45
|
+
| [mongodb][mongo-url] | Queue emails to MongoDB |
|
|
46
|
+
| [qmail-queue][url-qmail] | queue to qmail |
|
|
47
|
+
| [quarantine][url-qquart] | queue to a quarantine directory |
|
|
48
|
+
| [rabbitmq][url-qrabbit] | queue to RabbitMQ |
|
|
49
|
+
| [rabbitmq_amqplib][url-qrabbita] | queue to RabbitMQ using amqplib |
|
|
50
|
+
| [rails][url-qrails] | queue messages to a Rails app using [Action Mailbox][url-action-mailbox] |
|
|
51
|
+
| [smtp_bridge][url-qbridge] | Bridge SMTP sessions to another MTA |
|
|
52
|
+
| [smtp_forward][url-qforward] | Forward emails to another MTA |
|
|
53
|
+
| [smtp_proxy][url-qproxy] | Proxy SMTP connections to another MTA |
|
|
54
|
+
| [wildduck][url-wildduck] | queue messages to Wild Duck |
|
|
55
|
+
|
|
56
|
+
### Filtering Plugins
|
|
57
|
+
|
|
58
|
+
| Name | Description |
|
|
59
|
+
| ------------------------------ | ------------------------------------------ |
|
|
60
|
+
| [attachment][url-attach] | Restrict attachment types |
|
|
61
|
+
| [avg][url-avg] | AVG antivirus scanner |
|
|
62
|
+
| [clamd][url-clamd] | Anti-Virus scanning with ClamAV |
|
|
63
|
+
| [data.signatures][url-sigs] | Block emails whose bodies match signatures |
|
|
64
|
+
| [dcc][url-dcc] | Distributed Checksum Clearinghouse |
|
|
65
|
+
| [esets][url-esets] | Virus scanning with ESET Mail Security |
|
|
66
|
+
| [messagesniffer][url-msgsniff] | Anti-spam via [MessageSniffer][url-ms] |
|
|
67
|
+
| [milter][url-milter] | milter support |
|
|
68
|
+
| [rspamd][url-rspamd] | Scan emails with rspamd |
|
|
69
|
+
| [spamassassin][url-spamass] | Scan emails with SpamAssassin |
|
|
70
|
+
| [uribl][url-uribl] | Block based on URI blacklists |
|
|
71
|
+
|
|
72
|
+
### Every other Plugin
|
|
73
|
+
|
|
74
|
+
| Name | Description |
|
|
75
|
+
| ------------------------------------------ | ------------------------------------------------------------------------------------------- |
|
|
76
|
+
| [access][url-access] | ACLs based on IPs, domains, email addrs, etc. |
|
|
77
|
+
| [accounting_files][url-acc-files] | Retrieve, Store and Archive custom information of outbound traffic |
|
|
78
|
+
| [aliases][url-aliases] | Email aliases |
|
|
79
|
+
| [ASN][url-asn] | Get ASN info for remote senders |
|
|
80
|
+
| [block_me][url-blockme] | Populate block list via forwarded emails |
|
|
81
|
+
| [bounce][url-bounce] | Many options for bounce processing |
|
|
82
|
+
| [delay_deny][url-delay] | Delays all pre-DATA 'deny' results |
|
|
83
|
+
| [dns-list][url-dns-list] | Check remote MTAs against DNS black, white, and karma lists |
|
|
84
|
+
| [dovecot][url-dovecot] | Recipient validation & SMTP AUTH against dovecot |
|
|
85
|
+
| [early_talker][url-early] | Reject remotes that talk early |
|
|
86
|
+
| [fcrdns][url-fcrdns] | Forward Confirmed reverse DNS |
|
|
87
|
+
| [geoip][url-geoip] | get geographic information about mail senders |
|
|
88
|
+
| [greylist][url-greylist] | Greylisting |
|
|
89
|
+
| [headers][url-headers] | Inspect and verify various email headers |
|
|
90
|
+
| [helo.checks][url-helo] | Validity checks of the HELO string |
|
|
91
|
+
| [karma][url-karma] | Dynamic scoring of incoming connections |
|
|
92
|
+
| [known-senders][url-known-senders] | Reward emails from those you send mail to |
|
|
93
|
+
| [LDAP][url-ldap] | Aliases, Auth, and Recipient validation from LDAP |
|
|
94
|
+
| [Limit][url-limit] | Apply many types of limits to SMTP connections |
|
|
95
|
+
| [log.elasticsearch][url-elastic] | Store message metadata in Elasticsearch |
|
|
96
|
+
| [log reader][url-logreader] | extract log entries from the haraka log file |
|
|
97
|
+
| [syslog][url-syslog] | Log to syslog |
|
|
98
|
+
| [mail_from.is_resolvable][url-mfres] | Verifies the MAIL FROM domain resolves to a MX |
|
|
99
|
+
| [outbound-logger][url-outbound-logger] | JSON logging of outbound email traffic. Logs useful metadata about delivered/bounced emails |
|
|
100
|
+
| [p0f][url-p0f] | TCP Fingerprinting |
|
|
101
|
+
| [prevent_credential_leaks][url-creds] | Prevent users from emailing their credentials |
|
|
102
|
+
| [process_title][url-proctitle] | Populate `ps` output with activity counters |
|
|
103
|
+
| [recipient-routes][url-rroutes] | Route emails based on their recipient(s) |
|
|
104
|
+
| [redis][url-redis] | multi-purpose Redis db connection(s) |
|
|
105
|
+
| [rcpt_to.in_host_list][url-rhost] | Define local email domains in a file |
|
|
106
|
+
| [rcpt_to.ldap][url-rcpt-ldap] | Validate recipients against LDAP |
|
|
107
|
+
| [rcpt-postgresql][url-postgres] | validate recipients against PostgreSQL |
|
|
108
|
+
| [qmail-deliverable][url-rqmd] | Validate recipients against Qmail-Deliverable |
|
|
109
|
+
| [record_envelope_addresses][url-recordenv] | Adds message headers with ENV recips |
|
|
110
|
+
| [relay][url-relay] | Manage relay permissions |
|
|
111
|
+
| [reseed_rng][url-rng] | Reseed the RNG |
|
|
112
|
+
| [batv-srs][url-batv] | BATV & SRS |
|
|
113
|
+
| [srs][url-srs] | Sender Rewriting Scheme |
|
|
114
|
+
| [tarpit][url-tarpit] | Slow down connections |
|
|
115
|
+
| [tls][url-tls] | Implements TLS |
|
|
116
|
+
| [toobusy][url-toobusy] | Defers connections when too busy |
|
|
117
|
+
| [vmta][url-vmta] | Virtual MTA management |
|
|
118
|
+
| [watch][url-watch] | Watch live SMTP traffic in a web interface |
|
|
119
|
+
| [wildduck][url-wildduck] | provides recipient checks against Wild Duck |
|
|
120
|
+
| [xclient][url-xclient] | Implements XCLIENT |
|
|
108
121
|
|
|
109
122
|
<!-- URLs tucked safely out of the way -->
|
|
110
123
|
|
|
111
|
-
[template]: https://github.com/haraka/haraka-plugin-template
|
|
112
124
|
[write-plugin]: https://github.com/haraka/Haraka/wiki/Write-a-Plugin
|
|
113
125
|
[plugins-doc]: https://haraka.github.io/core/Plugins
|
|
114
126
|
[url-access]: https://github.com/haraka/haraka-plugin-access
|
|
@@ -124,11 +136,12 @@ Create a PR adding yours to this list.
|
|
|
124
136
|
[url-auth-ldap]: https://github.com/haraka/haraka-plugin-auth-ldap
|
|
125
137
|
[url-authproxy]: https://github.com/haraka/Haraka/blob/master/docs/plugins/auth/auth_proxy.md
|
|
126
138
|
[url-authvpop]: https://github.com/haraka/Haraka/blob/master/docs/plugins/auth/auth_vpopmaild.md
|
|
127
|
-
[url-avg]: https://github.com/haraka/
|
|
139
|
+
[url-avg]: https://github.com/haraka/haraka-plugin-avg
|
|
140
|
+
[url-batv]: https://www.npmjs.com/package/haraka-plugin-batv
|
|
128
141
|
[url-scatter]: https://github.com/haraka/Haraka/blob/master/docs/plugins/backscatterer.md
|
|
129
142
|
[url-blockme]: https://github.com/haraka/Haraka/blob/master/docs/plugins/block_me.md
|
|
130
|
-
[url-bounce]: https://
|
|
131
|
-
[url-clamd]: https://github.com/haraka/
|
|
143
|
+
[url-bounce]: https://www.npmjs.com/package/haraka-plugin-bounce
|
|
144
|
+
[url-clamd]: https://github.com/haraka/haraka-plugin-clamd
|
|
132
145
|
[url-dovecot]: https://github.com/haraka/haraka-plugin-dovecot
|
|
133
146
|
[url-fcrdns]: https://github.com/haraka/haraka-plugin-fcrdns
|
|
134
147
|
[url-p0f]: https://github.com/haraka/haraka-plugin-p0f
|
|
@@ -137,17 +150,15 @@ Create a PR adding yours to this list.
|
|
|
137
150
|
[url-uribl]: https://github.com/haraka/haraka-plugin-uribl
|
|
138
151
|
[url-dcc]: https://github.com/haraka/haraka-plugin-dcc
|
|
139
152
|
[url-delay]: https://github.com/haraka/Haraka/blob/master/docs/plugins/delay_deny.md
|
|
140
|
-
[url-
|
|
141
|
-
[url-dkimv]: https://github.com/haraka/Haraka/blob/master/docs/plugins/dkim_verify.md
|
|
153
|
+
[url-dkim]: https://github.com/haraka/haraka-plugin-dkim
|
|
142
154
|
[url-opendkim]: https://www.npmjs.com/package/haraka-plugin-opendkim
|
|
143
|
-
[url-
|
|
144
|
-
[url-dnswl]: https://github.com/haraka/Haraka/blob/master/docs/plugins/dnswl.md
|
|
155
|
+
[url-dns-list]: https://github.com/haraka/haraka-plugin-dns-list
|
|
145
156
|
[url-early]: https://github.com/haraka/Haraka/blob/master/docs/plugins/early_talker.md
|
|
146
|
-
[url-esets]: https://github.com/haraka/
|
|
157
|
+
[url-esets]: https://github.com/haraka/haraka-plugin-esets
|
|
147
158
|
[url-geoip]: https://github.com/haraka/haraka-plugin-geoip
|
|
148
159
|
[url-graph]: https://github.com/haraka/haraka-plugin-graph
|
|
149
|
-
[url-greylist]: https://github.com/haraka/
|
|
150
|
-
[url-helo]: https://github.com/haraka/
|
|
160
|
+
[url-greylist]: https://github.com/haraka/haraka-plugin-greylist
|
|
161
|
+
[url-helo]: https://github.com/haraka/haraka-plugin-helo.checks
|
|
151
162
|
[url-karma]: https://github.com/haraka/haraka-plugin-karma
|
|
152
163
|
[url-known-senders]: https://github.com/haraka/haraka-plugin-known-senders
|
|
153
164
|
[url-elastic]: https://github.com/haraka/haraka-plugin-elasticsearch/
|
|
@@ -157,7 +168,7 @@ Create a PR adding yours to this list.
|
|
|
157
168
|
[url-logreader]: https://github.com/haraka/haraka-plugin-log-reader
|
|
158
169
|
[url-milter]: https://github.com/haraka/haraka-plugin-milter
|
|
159
170
|
[url-mfres]: https://github.com/haraka/Haraka/blob/master/docs/plugins/mail_from.is_resolvable.md
|
|
160
|
-
[url-msgsniff]: https://github.com/haraka/
|
|
171
|
+
[url-msgsniff]: https://github.com/haraka/haraka-plugin-messagesniffer
|
|
161
172
|
[url-ms]: http://www.armresearch.com/Products/
|
|
162
173
|
[url-creds]: https://github.com/haraka/Haraka/blob/master/docs/plugins/prevent_credential_leaks.md
|
|
163
174
|
[url-postgres]: https://github.com/haraka/haraka-plugin-rcpt-postgresql
|
|
@@ -181,7 +192,7 @@ Create a PR adding yours to this list.
|
|
|
181
192
|
[url-relay]: https://github.com/haraka/Haraka/blob/master/docs/plugins/relay.md
|
|
182
193
|
[url-rng]: https://github.com/haraka/Haraka/blob/master/docs/plugins/reseed_rng.md
|
|
183
194
|
[url-rspamd]: https://github.com/haraka/haraka-plugin-rspamd
|
|
184
|
-
[url-spamass]: https://github.com/haraka/
|
|
195
|
+
[url-spamass]: https://github.com/haraka/haraka-plugin-spamassassin
|
|
185
196
|
[url-spf]: https://github.com/haraka/haraka-plugin-spf
|
|
186
197
|
[url-srs]: https://github.com/swerter/haraka-plugins/blob/master/plugins/srs.js
|
|
187
198
|
[url-tarpit]: https://github.com/haraka/Haraka/blob/master/docs/plugins/tarpit.md
|
|
@@ -194,3 +205,4 @@ Create a PR adding yours to this list.
|
|
|
194
205
|
[mongo-url]: https://github.com/Helpmonks/haraka-plugin-mongodb
|
|
195
206
|
[url-outbound-logger]: https://github.com/mr-karan/haraka-plugin-outbound-logger
|
|
196
207
|
[url-kafka]: https://github.com/benjamonnguyen/haraka-plugin-queue-kafka
|
|
208
|
+
[url-mailauth]: https://www.npmjs.com/package/haraka-plugin-mailauth
|
package/README.md
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
Haraka - a Node.js Mail Server
|
|
3
|
-
------------------------------
|
|
1
|
+
## Haraka - a Node.js Mail Server
|
|
4
2
|
|
|
5
3
|

|
|
6
4
|
[![Coverage Status][cov-img]][cov-url]
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
10
6
|
Haraka is a highly scalable [node.js][1] email server with a modular
|
|
11
7
|
plugin architecture. Haraka can serve thousands of concurrent connections
|
|
12
8
|
and deliver thousands of messages per second. Haraka and plugins are written
|
|
@@ -26,9 +22,8 @@ queued for outbound delivery.
|
|
|
26
22
|
|
|
27
23
|
### Getting Help
|
|
28
24
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
- [Join the mailing list][8] (implemented as a Haraka plugin)
|
|
26
|
+
- [GitHub Issues][15]
|
|
32
27
|
|
|
33
28
|
### Screencast
|
|
34
29
|
|
|
@@ -49,7 +44,6 @@ code in Haraka.
|
|
|
49
44
|
Plugins are provided for running mail through [SpamAssassin][9], validating
|
|
50
45
|
[HELO][10] names, checking [DNS Blocklists][11], and [many others][12].
|
|
51
46
|
|
|
52
|
-
|
|
53
47
|
### Installing Haraka
|
|
54
48
|
|
|
55
49
|
Haraka requires [node.js][1] to run. Install Haraka with [npm][2]:
|
|
@@ -93,7 +87,6 @@ overall behaviour of Haraka. By default, only messages to domains listed
|
|
|
93
87
|
in `config/host_list` will be accepted and then delivered via the
|
|
94
88
|
`smtp-forward` plugin. Configure the destination in `config/smtp_forward.ini`.
|
|
95
89
|
|
|
96
|
-
|
|
97
90
|
### Read the Fine Manual
|
|
98
91
|
|
|
99
92
|
```sh
|
|
@@ -103,7 +96,6 @@ haraka -h plugins/$name
|
|
|
103
96
|
The docs detail how each plugin is configured. After editing
|
|
104
97
|
`config/plugins`, restart Haraka and enjoy!
|
|
105
98
|
|
|
106
|
-
|
|
107
99
|
### Running from git
|
|
108
100
|
|
|
109
101
|
If you are unable to use npm to install Haraka, you can run from git by
|
|
@@ -140,7 +132,7 @@ SpamAssassin and a hacker on [Qpsmtpd][13].
|
|
|
140
132
|
[6]: https://github.com/haraka/Haraka/blob/master/docs/plugins/dkim_sign.md
|
|
141
133
|
[7]: https://en.wikipedia.org/wiki/Mail_delivery_agent
|
|
142
134
|
[8]: mailto:haraka-sub@harakamail.com
|
|
143
|
-
[9]:
|
|
135
|
+
[9]: https://haraka.github.io/plugins/spamassassin
|
|
144
136
|
[10]: https://haraka.github.io/plugins/helo.checks
|
|
145
137
|
[11]: https://haraka.github.io/plugins/dnsbl
|
|
146
138
|
[12]: https://github.com/haraka/Haraka/blob/master/Plugins.md
|
|
@@ -148,6 +140,5 @@ SpamAssassin and a hacker on [Qpsmtpd][13].
|
|
|
148
140
|
[15]: https://github.com/haraka/Haraka/issues
|
|
149
141
|
[16]: https://github.com/haraka/Haraka/blob/master/LICENSE
|
|
150
142
|
[17]: https://github.com/baudehlo
|
|
151
|
-
|
|
152
143
|
[cov-img]: https://codecov.io/github/haraka/Haraka/coverage.svg
|
|
153
144
|
[cov-url]: https://codecov.io/github/haraka/Haraka?branch=master
|