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.
Files changed (238) hide show
  1. package/.eslintrc.yaml +5 -9
  2. package/.prettierrc.yml +1 -0
  3. package/CONTRIBUTORS.md +11 -0
  4. package/Changes.md +1365 -1214
  5. package/Plugins.md +117 -105
  6. package/README.md +4 -13
  7. package/bin/haraka +197 -298
  8. package/config/auth_flat_file.ini +1 -0
  9. package/config/dhparams.pem +8 -0
  10. package/config/mail_from.is_resolvable.ini +4 -2
  11. package/config/me +1 -0
  12. package/config/outbound.ini +0 -2
  13. package/config/plugins +36 -35
  14. package/config/smtp.ini +0 -1
  15. package/config/smtp.json +17 -0
  16. package/config/tls_cert.pem +23 -0
  17. package/config/tls_key.pem +28 -0
  18. package/connection.js +46 -73
  19. package/contrib/bsd-rc.d/haraka +3 -1
  20. package/contrib/plugin2npm.sh +6 -36
  21. package/docs/CoreConfig.md +2 -2
  22. package/docs/Logging.md +7 -21
  23. package/docs/Outbound.md +104 -201
  24. package/docs/Plugins.md +2 -2
  25. package/docs/Transaction.md +59 -82
  26. package/docs/plugins/queue/smtp_proxy.md +5 -10
  27. package/docs/plugins/tls.md +29 -9
  28. package/endpoint.js +16 -13
  29. package/haraka.js +10 -14
  30. package/host_pool.js +5 -5
  31. package/line_socket.js +3 -4
  32. package/logger.js +44 -28
  33. package/outbound/client_pool.js +27 -23
  34. package/outbound/config.js +4 -6
  35. package/outbound/fsync_writestream.js +1 -1
  36. package/outbound/hmail.js +178 -218
  37. package/outbound/index.js +86 -99
  38. package/outbound/qfile.js +1 -1
  39. package/outbound/queue.js +51 -44
  40. package/outbound/timer_queue.js +3 -2
  41. package/outbound/tls.js +19 -7
  42. package/package.json +59 -48
  43. package/plugins/.eslintrc.yaml +0 -6
  44. package/plugins/auth/auth_base.js +4 -2
  45. package/plugins/auth/auth_proxy.js +14 -12
  46. package/plugins/auth/auth_vpopmaild.js +1 -1
  47. package/plugins/block_me.js +1 -1
  48. package/plugins/data.signatures.js +2 -4
  49. package/plugins/early_talker.js +2 -1
  50. package/plugins/mail_from.is_resolvable.js +65 -135
  51. package/plugins/queue/deliver.js +4 -5
  52. package/plugins/queue/lmtp.js +11 -14
  53. package/plugins/queue/qmail-queue.js +2 -2
  54. package/plugins/queue/quarantine.js +2 -2
  55. package/plugins/queue/rabbitmq.js +16 -17
  56. package/plugins/queue/smtp_forward.js +3 -3
  57. package/plugins/queue/smtp_proxy.js +10 -1
  58. package/plugins/queue/test.js +2 -2
  59. package/plugins/rcpt_to.host_list_base.js +5 -5
  60. package/plugins/rcpt_to.in_host_list.js +2 -2
  61. package/plugins/relay.js +6 -7
  62. package/plugins/reseed_rng.js +1 -1
  63. package/plugins/status.js +37 -33
  64. package/plugins/tls.js +2 -2
  65. package/plugins/xclient.js +3 -2
  66. package/plugins.js +50 -54
  67. package/run_tests +3 -30
  68. package/server.js +190 -190
  69. package/smtp_client.js +30 -23
  70. package/{tests → test}/config/plugins +0 -2
  71. package/{tests → test}/config/smtp.ini +1 -1
  72. package/test/config/tls/example.com/_.example.com.key +28 -0
  73. package/test/config/tls/example.com/example.com.crt +25 -0
  74. package/test/connection.js +302 -0
  75. package/test/endpoint.js +94 -0
  76. package/{tests → test}/fixtures/line_socket.js +1 -1
  77. package/{tests → test}/fixtures/util_hmailitem.js +19 -25
  78. package/{tests → test}/host_pool.js +42 -57
  79. package/test/logger.js +258 -0
  80. package/test/outbound/hmail.js +141 -0
  81. package/test/outbound/index.js +220 -0
  82. package/test/outbound/qfile.js +126 -0
  83. package/test/outbound_bounce_net_errors.js +142 -0
  84. package/{tests → test}/outbound_bounce_rfc3464.js +110 -122
  85. package/test/plugins/auth/auth_base.js +484 -0
  86. package/test/plugins/auth/auth_vpopmaild.js +83 -0
  87. package/test/plugins/early_talker.js +104 -0
  88. package/test/plugins/mail_from.is_resolvable.js +35 -0
  89. package/test/plugins/queue/smtp_forward.js +206 -0
  90. package/test/plugins/rcpt_to.host_list_base.js +122 -0
  91. package/test/plugins/rcpt_to.in_host_list.js +193 -0
  92. package/test/plugins/relay.js +303 -0
  93. package/test/plugins/status.js +130 -0
  94. package/test/plugins/tls.js +70 -0
  95. package/test/plugins.js +228 -0
  96. package/test/rfc1869.js +73 -0
  97. package/test/server.js +491 -0
  98. package/test/smtp_client.js +299 -0
  99. package/test/tls_socket.js +273 -0
  100. package/test/transaction.js +270 -0
  101. package/tls_socket.js +202 -252
  102. package/transaction.js +8 -23
  103. package/CONTRIBUTING.md +0 -1
  104. package/bin/dkimverify +0 -40
  105. package/config/access.domains +0 -13
  106. package/config/attachment.ctype.regex +0 -2
  107. package/config/attachment.filename.regex +0 -1
  108. package/config/avg.ini +0 -5
  109. package/config/bounce.ini +0 -15
  110. package/config/data.headers.ini +0 -61
  111. package/config/dkim/dkim_key_gen.sh +0 -78
  112. package/config/dkim_sign.ini +0 -4
  113. package/config/dkim_verify.ini +0 -7
  114. package/config/dnsbl.ini +0 -23
  115. package/config/greylist.ini +0 -43
  116. package/config/helo.checks.ini +0 -52
  117. package/config/messagesniffer.ini +0 -18
  118. package/config/spamassassin.ini +0 -56
  119. package/dkim.js +0 -614
  120. package/docs/plugins/avg.md +0 -35
  121. package/docs/plugins/bounce.md +0 -69
  122. package/docs/plugins/clamd.md +0 -147
  123. package/docs/plugins/esets.md +0 -8
  124. package/docs/plugins/greylist.md +0 -90
  125. package/docs/plugins/helo.checks.md +0 -135
  126. package/docs/plugins/messagesniffer.md +0 -163
  127. package/docs/plugins/spamassassin.md +0 -180
  128. package/outbound/mx_lookup.js +0 -70
  129. package/plugins/auth/auth_ldap.js +0 -3
  130. package/plugins/avg.js +0 -162
  131. package/plugins/backscatterer.js +0 -25
  132. package/plugins/bounce.js +0 -381
  133. package/plugins/clamd.js +0 -382
  134. package/plugins/data.uribl.js +0 -4
  135. package/plugins/dkim_sign.js +0 -395
  136. package/plugins/dkim_verify.js +0 -62
  137. package/plugins/dns_list_base.js +0 -221
  138. package/plugins/dnsbl.js +0 -146
  139. package/plugins/dnswl.js +0 -58
  140. package/plugins/esets.js +0 -71
  141. package/plugins/graph.js +0 -5
  142. package/plugins/greylist.js +0 -645
  143. package/plugins/helo.checks.js +0 -533
  144. package/plugins/messagesniffer.js +0 -381
  145. package/plugins/rcpt_to.ldap.js +0 -3
  146. package/plugins/rcpt_to.max_count.js +0 -24
  147. package/plugins/spamassassin.js +0 -384
  148. package/tests/config/dkim/example.com/dns +0 -29
  149. package/tests/config/dkim/example.com/private +0 -6
  150. package/tests/config/dkim/example.com/public +0 -4
  151. package/tests/config/dkim/example.com/selector +0 -1
  152. package/tests/config/dkim.private.key +0 -6
  153. package/tests/config/dkim_sign.ini +0 -4
  154. package/tests/config/helo.checks.ini +0 -52
  155. package/tests/connection.js +0 -327
  156. package/tests/endpoint.js +0 -128
  157. package/tests/fixtures/vm_harness.js +0 -59
  158. package/tests/logger.js +0 -327
  159. package/tests/outbound/hmail.js +0 -112
  160. package/tests/outbound/index.js +0 -324
  161. package/tests/outbound/qfile.js +0 -67
  162. package/tests/outbound_bounce_net_errors.js +0 -173
  163. package/tests/plugins/auth/auth_base.js +0 -463
  164. package/tests/plugins/auth/auth_vpopmaild.js +0 -91
  165. package/tests/plugins/bounce.js +0 -307
  166. package/tests/plugins/clamd.js +0 -224
  167. package/tests/plugins/deprecated/relay_acl.js +0 -140
  168. package/tests/plugins/deprecated/relay_all.js +0 -59
  169. package/tests/plugins/dkim_sign.js +0 -315
  170. package/tests/plugins/dkim_signer.js +0 -108
  171. package/tests/plugins/dns_list_base.js +0 -259
  172. package/tests/plugins/dnsbl.js +0 -101
  173. package/tests/plugins/early_talker.js +0 -115
  174. package/tests/plugins/greylist.js +0 -58
  175. package/tests/plugins/helo.checks.js +0 -525
  176. package/tests/plugins/mail_from.is_resolvable.js +0 -116
  177. package/tests/plugins/queue/smtp_forward.js +0 -221
  178. package/tests/plugins/rcpt_to.host_list_base.js +0 -132
  179. package/tests/plugins/rcpt_to.in_host_list.js +0 -218
  180. package/tests/plugins/relay.js +0 -339
  181. package/tests/plugins/spamassassin.js +0 -171
  182. package/tests/plugins/status.js +0 -138
  183. package/tests/plugins/tls.js +0 -84
  184. package/tests/plugins.js +0 -247
  185. package/tests/rfc1869.js +0 -61
  186. package/tests/server.js +0 -510
  187. package/tests/smtp_client/auth.js +0 -105
  188. package/tests/smtp_client/basic.js +0 -101
  189. package/tests/smtp_client.js +0 -80
  190. package/tests/tls_socket.js +0 -333
  191. package/tests/transaction.js +0 -284
  192. /package/docs/{plugins → deprecated}/dkim_sign.md +0 -0
  193. /package/docs/{plugins → deprecated}/dkim_verify.md +0 -0
  194. /package/docs/{plugins → deprecated}/dnsbl.md +0 -0
  195. /package/docs/{plugins → deprecated}/dnswl.md +0 -0
  196. /package/{tests → test}/.eslintrc.yaml +0 -0
  197. /package/{tests → test}/config/auth_flat_file.ini +0 -0
  198. /package/{tests → test}/config/dhparams.pem +0 -0
  199. /package/{tests → test}/config/host_list +0 -0
  200. /package/{tests → test}/config/outbound_tls_cert.pem +0 -0
  201. /package/{tests → test}/config/outbound_tls_key.pem +0 -0
  202. /package/{tests → test}/config/smtp_forward.ini +0 -0
  203. /package/{tests → test}/config/tls/ec.pem +0 -0
  204. /package/{tests → test}/config/tls/haraka.local.pem +0 -0
  205. /package/{tests → test}/config/tls/mismatched.pem +0 -0
  206. /package/{tests → test}/config/tls.ini +0 -0
  207. /package/{tests → test}/config/tls_cert.pem +0 -0
  208. /package/{tests → test}/config/tls_key.pem +0 -0
  209. /package/{tests → test}/fixtures/todo_qfile.txt +0 -0
  210. /package/{tests → test}/installation/config/test-plugin-flat +0 -0
  211. /package/{tests → test}/installation/config/test-plugin.ini +0 -0
  212. /package/{tests → test}/installation/config/tls.ini +0 -0
  213. /package/{tests → test}/installation/node_modules/load_first/index.js +0 -0
  214. /package/{tests → test}/installation/node_modules/load_first/package.json +0 -0
  215. /package/{tests → test}/installation/node_modules/test-plugin/config/test-plugin-flat +0 -0
  216. /package/{tests → test}/installation/node_modules/test-plugin/config/test-plugin.ini +0 -0
  217. /package/{tests → test}/installation/node_modules/test-plugin/package.json +0 -0
  218. /package/{tests → test}/installation/node_modules/test-plugin/test-plugin.js +0 -0
  219. /package/{tests → test}/installation/plugins/base_plugin.js +0 -0
  220. /package/{tests → test}/installation/plugins/folder_plugin/index.js +0 -0
  221. /package/{tests → test}/installation/plugins/folder_plugin/package.json +0 -0
  222. /package/{tests → test}/installation/plugins/inherits.js +0 -0
  223. /package/{tests → test}/installation/plugins/load_first.js +0 -0
  224. /package/{tests → test}/installation/plugins/plugin.js +0 -0
  225. /package/{tests → test}/installation/plugins/tls.js +0 -0
  226. /package/{tests → test}/loud/config/dhparams.pem +0 -0
  227. /package/{tests → test}/loud/config/tls/goobered.pem +0 -0
  228. /package/{tests → test}/loud/config/tls.ini +0 -0
  229. /package/{tests → test}/mail_specimen/base64-root-part.txt +0 -0
  230. /package/{tests → test}/mail_specimen/varied-fold-lengths-preserve-data.txt +0 -0
  231. /package/{tests → test}/queue/1507509981169_1507509981169_0_61403_e0Y0Ym_1_fixed +0 -0
  232. /package/{tests → test}/queue/1507509981169_1507509981169_0_61403_e0Y0Ym_1_haraka +0 -0
  233. /package/{tests → test}/queue/1508269674999_1508269674999_0_34002_socVUF_1_haraka +0 -0
  234. /package/{tests → test}/queue/1508455115683_1508455115683_0_90253_9Q4o4V_1_haraka +0 -0
  235. /package/{tests → test}/queue/multibyte +0 -0
  236. /package/{tests → test}/queue/plain +0 -0
  237. /package/{tests → test}/queue/zero-length +0 -0
  238. /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
- 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:
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 mostly comprehensive list of plugins known to be working and maintained.
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/Haraka/blob/master/docs/plugins/avg.md
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://github.com/haraka/Haraka/blob/master/docs/plugins/bounce.md
131
- [url-clamd]: https://github.com/haraka/Haraka/blob/master/docs/plugins/clamd.md
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-sign]: https://github.com/haraka/Haraka/blob/master/docs/plugins/dkim_sign.md
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-dnsbl]: https://github.com/haraka/Haraka/blob/master/docs/plugins/dnsbl.md
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/Haraka/blob/master/docs/plugins/esets.md
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/Haraka/blob/master/docs/plugins/greylist.md
150
- [url-helo]: https://github.com/haraka/Haraka/blob/master/docs/plugins/helo.checks.md
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/Haraka/blob/master/docs/plugins/messagesniffer.md
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/Haraka/blob/master/docs/plugins/spamassassin.md
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
  ![Tests](https://github.com/haraka/Haraka/actions/workflows/ci.yml/badge.svg)
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
- * [Join the mailing list][8] (implemented as a Haraka plugin)
30
- * [GitHub Issues][15]
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]: https://haraka.github.io/plugins/spamassassin
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