Haraka 3.1.2 → 3.1.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/.prettierignore +2 -0
- package/CONTRIBUTORS.md +24 -2
- package/Changes.md +48 -0
- package/Plugins.md +81 -64
- package/README.md +1 -1
- package/bin/haraka +9 -7
- package/config/connection.ini +10 -0
- package/config/smtp.ini +0 -9
- package/connection.js +15 -19
- package/docs/CoreConfig.md +2 -3
- package/docs/Plugins.md +1 -1
- package/docs/plugins/aliases.md +0 -2
- package/docs/plugins/queue/qmail-queue.md +0 -1
- package/docs/tutorials/Migrating_from_v1_to_v2.md +1 -1
- package/logger.js +2 -2
- package/outbound/client_pool.js +1 -1
- package/outbound/hmail.js +76 -83
- package/outbound/index.js +36 -34
- package/outbound/queue.js +231 -176
- package/package.json +29 -31
- package/plugins/prevent_credential_leaks.js +2 -2
- package/plugins/process_title.js +1 -1
- package/plugins/queue/smtp_forward.js +1 -1
- package/plugins/status.js +8 -5
- package/plugins/tls.js +1 -1
- package/plugins.js +19 -14
- package/rfc1869.js +10 -10
- package/run_tests +20 -2
- package/server.js +15 -10
- package/smtp_client.js +2 -9
- package/test/config/tls/haraka.local.pem +47 -47
- package/test/connection.js +286 -147
- package/test/fixtures/line_socket.js +1 -0
- package/test/fixtures/util_hmailitem.js +1 -1
- package/test/outbound/bounce_net_errors.js +176 -0
- package/test/outbound/bounce_rfc3464.js +303 -0
- package/test/outbound/hmail.js +140 -104
- package/test/outbound/index.js +61 -101
- package/test/outbound/qfile.js +25 -25
- package/test/outbound/queue.js +233 -0
- package/test/plugins/queue/smtp_forward.js +1 -1
- package/test/plugins/record_envelope_addresses.js +93 -0
- package/test/plugins/tls.js +2 -2
- package/test/plugins/xclient.js +137 -0
- package/test/rfc1869.js +43 -0
- package/test/smtp_client.js +6 -6
- package/test/transaction.js +486 -201
- package/tls_socket.js +3 -3
- package/transaction.js +33 -10
- package/config/me +0 -1
- package/config/rabbitmq.ini +0 -10
- package/config/rabbitmq_amqplib.ini +0 -19
- package/config/tls_cert.pem +0 -23
- package/config/tls_key.pem +0 -28
- package/docs/plugins/queue/rabbitmq.md +0 -34
- package/docs/plugins/queue/rabbitmq_amqplib.md +0 -51
- package/plugins/queue/rabbitmq.js +0 -141
- package/plugins/queue/rabbitmq_amqplib.js +0 -96
- package/test/config/tls/ec.pem +0 -23
- package/test/config/tls/mismatched.pem +0 -49
- package/test/outbound_bounce_net_errors.js +0 -157
- package/test/outbound_bounce_rfc3464.js +0 -366
- package/test/queue/multibyte +0 -0
- package/test/queue/plain +0 -0
- package/test/test-queue/delete-me +0 -0
- package/test/tls_socket.js +0 -273
package/.prettierignore
CHANGED
package/CONTRIBUTORS.md
CHANGED
|
@@ -2,11 +2,33 @@
|
|
|
2
2
|
|
|
3
3
|
This handcrafted artisanal software is brought to you by:
|
|
4
4
|
|
|
5
|
-
| <img height="80" src="https://avatars.githubusercontent.com/u/261635?v=4"><br><a href="https://github.com/msimerson">msimerson</a> (<a href="https://github.com/haraka/Haraka/commits?author=msimerson">
|
|
5
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/261635?v=4"><br><a href="https://github.com/msimerson">msimerson</a> (<a href="https://github.com/haraka/Haraka/commits?author=msimerson">1662</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/662371?v=4"><br><a href="https://github.com/baudehlo">baudehlo</a> (<a href="https://github.com/haraka/Haraka/commits?author=baudehlo">969</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/550490?v=4"><br><a href="https://github.com/smfreegard">smfreegard</a> (<a href="https://github.com/haraka/Haraka/commits?author=smfreegard">794</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/959600?v=4"><br><a href="https://github.com/godsflaw">godsflaw</a> (<a href="https://github.com/haraka/Haraka/commits?author=godsflaw">171</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/934254?v=4"><br><a href="https://github.com/analogic">analogic</a> (<a href="https://github.com/haraka/Haraka/commits?author=analogic">42</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1674289?v=4"><br><a href="https://github.com/Dexus">Dexus</a> (<a href="https://github.com/haraka/Haraka/commits?author=Dexus">42</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/82041?v=4"><br><a href="https://github.com/gramakri">gramakri</a> (<a href="https://github.com/haraka/Haraka/commits?author=gramakri">40</a>)|
|
|
6
6
|
| :---: | :---: | :---: | :---: | :---: | :---: | :---: |
|
|
7
|
-
| <img height="80" src="https://avatars.githubusercontent.com/u/203240?v=4"><br><a href="https://github.com/lnedry">lnedry</a> (<a href="https://github.com/haraka/Haraka/commits?author=lnedry">
|
|
7
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/203240?v=4"><br><a href="https://github.com/lnedry">lnedry</a> (<a href="https://github.com/haraka/Haraka/commits?author=lnedry">27</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/748075?v=4"><br><a href="https://github.com/celesteking">celesteking</a> (<a href="https://github.com/haraka/Haraka/commits?author=celesteking">21</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/791972?v=4"><br><a href="https://github.com/lpatters">lpatters</a> (<a href="https://github.com/haraka/Haraka/commits?author=lpatters">20</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/366268?v=4"><br><a href="https://github.com/chazomaticus">chazomaticus</a> (<a href="https://github.com/haraka/Haraka/commits?author=chazomaticus">19</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/123708?v=4"><br><a href="https://github.com/arlolra">arlolra</a> (<a href="https://github.com/haraka/Haraka/commits?author=arlolra">16</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/271024?v=4"><br><a href="https://github.com/hayesgm">hayesgm</a> (<a href="https://github.com/haraka/Haraka/commits?author=hayesgm">16</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1573133?v=4"><br><a href="https://github.com/gauravaror">gauravaror</a> (<a href="https://github.com/haraka/Haraka/commits?author=gauravaror">14</a>)|
|
|
8
8
|
| <img height="80" src="https://avatars.githubusercontent.com/u/260607?v=4"><br><a href="https://github.com/typingArtist">typingArtist</a> (<a href="https://github.com/haraka/Haraka/commits?author=typingArtist">14</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/11343494?v=4"><br><a href="https://github.com/superman20">superman20</a> (<a href="https://github.com/haraka/Haraka/commits?author=superman20">13</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/158380?v=4"><br><a href="https://github.com/darkpixel">darkpixel</a> (<a href="https://github.com/haraka/Haraka/commits?author=darkpixel">12</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/9887966?v=4"><br><a href="https://github.com/KingNoosh">KingNoosh</a> (<a href="https://github.com/haraka/Haraka/commits?author=KingNoosh">11</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/5229495?v=4"><br><a href="https://github.com/tstonis">tstonis</a> (<a href="https://github.com/haraka/Haraka/commits?author=tstonis">10</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1746394?v=4"><br><a href="https://github.com/wltsmrz">wltsmrz</a> (<a href="https://github.com/haraka/Haraka/commits?author=wltsmrz">9</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/218741413?v=4"><br><a href="https://github.com/SamuelGrave">SamuelGrave</a> (<a href="https://github.com/haraka/Haraka/commits?author=SamuelGrave">9</a>)|
|
|
9
9
|
| <img height="80" src="https://avatars.githubusercontent.com/u/2176651?v=4"><br><a href="https://github.com/fatalbanana">fatalbanana</a> (<a href="https://github.com/haraka/Haraka/commits?author=fatalbanana">9</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/231081?v=4"><br><a href="https://github.com/EyePulp">EyePulp</a> (<a href="https://github.com/haraka/Haraka/commits?author=EyePulp">8</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/81561?v=4"><br><a href="https://github.com/Synchro">Synchro</a> (<a href="https://github.com/haraka/Haraka/commits?author=Synchro">8</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/3957811?v=4"><br><a href="https://github.com/gene-hightower">gene-hightower</a> (<a href="https://github.com/haraka/Haraka/commits?author=gene-hightower">7</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/8224508?v=4"><br><a href="https://github.com/DarkSorrow">DarkSorrow</a> (<a href="https://github.com/haraka/Haraka/commits?author=DarkSorrow">6</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/103802?v=4"><br><a href="https://github.com/joshuathayer">joshuathayer</a> (<a href="https://github.com/haraka/Haraka/commits?author=joshuathayer">6</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/298453?v=4"><br><a href="https://github.com/zllovesuki">zllovesuki</a> (<a href="https://github.com/haraka/Haraka/commits?author=zllovesuki">5</a>)|
|
|
10
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/132251?v=4"><br><a href="https://github.com/schamane">schamane</a> (<a href="https://github.com/haraka/Haraka/commits?author=schamane">5</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/2158203?v=4"><br><a href="https://github.com/luto">luto</a> (<a href="https://github.com/haraka/Haraka/commits?author=luto">5</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/21576638?v=4"><br><a href="https://github.com/steflw">steflw</a> (<a href="https://github.com/haraka/Haraka/commits?author=steflw">5</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1263856?v=4"><br><a href="https://github.com/ricardopolo">ricardopolo</a> (<a href="https://github.com/haraka/Haraka/commits?author=ricardopolo">5</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1521113?v=4"><br><a href="https://github.com/hontas">hontas</a> (<a href="https://github.com/haraka/Haraka/commits?author=hontas">5</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/918201?v=4"><br><a href="https://github.com/DoobleD">DoobleD</a> (<a href="https://github.com/haraka/Haraka/commits?author=DoobleD">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/11270?v=4"><br><a href="https://github.com/swerter">swerter</a> (<a href="https://github.com/haraka/Haraka/commits?author=swerter">4</a>)|
|
|
11
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/791835?v=4"><br><a href="https://github.com/Juerd">Juerd</a> (<a href="https://github.com/haraka/Haraka/commits?author=Juerd">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/5351045?v=4"><br><a href="https://github.com/rhedshi">rhedshi</a> (<a href="https://github.com/haraka/Haraka/commits?author=rhedshi">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/7155684?v=4"><br><a href="https://github.com/rw251">rw251</a> (<a href="https://github.com/haraka/Haraka/commits?author=rw251">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/255701?v=4"><br><a href="https://github.com/abhas">abhas</a> (<a href="https://github.com/haraka/Haraka/commits?author=abhas">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/147893?v=4"><br><a href="https://github.com/Andrew565">Andrew565</a> (<a href="https://github.com/haraka/Haraka/commits?author=Andrew565">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1451395?v=4"><br><a href="https://github.com/bmonty">bmonty</a> (<a href="https://github.com/haraka/Haraka/commits?author=bmonty">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/308887?v=4"><br><a href="https://github.com/benjisg">benjisg</a> (<a href="https://github.com/haraka/Haraka/commits?author=benjisg">4</a>)|
|
|
12
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/5624708?v=4"><br><a href="https://github.com/Bramzor">Bramzor</a> (<a href="https://github.com/haraka/Haraka/commits?author=Bramzor">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/8285462?v=4"><br><a href="https://github.com/CalgaryMichael">CalgaryMichael</a> (<a href="https://github.com/haraka/Haraka/commits?author=CalgaryMichael">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/34087?v=4"><br><a href="https://github.com/fredjean">fredjean</a> (<a href="https://github.com/haraka/Haraka/commits?author=fredjean">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/13922268?v=4"><br><a href="https://github.com/jdai8">jdai8</a> (<a href="https://github.com/haraka/Haraka/commits?author=jdai8">4</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/6220422?v=4"><br><a href="https://github.com/dcharbonnier">dcharbonnier</a> (<a href="https://github.com/haraka/Haraka/commits?author=dcharbonnier">3</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/232225?v=4"><br><a href="https://github.com/soncodi">soncodi</a> (<a href="https://github.com/haraka/Haraka/commits?author=soncodi">3</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/2115696?v=4"><br><a href="https://github.com/AuspeXeu">AuspeXeu</a> (<a href="https://github.com/haraka/Haraka/commits?author=AuspeXeu">3</a>)|
|
|
13
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/6684599?v=4"><br><a href="https://github.com/acharkizakaria">acharkizakaria</a> (<a href="https://github.com/haraka/Haraka/commits?author=acharkizakaria">3</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1810178?v=4"><br><a href="https://github.com/pvsousalima">pvsousalima</a> (<a href="https://github.com/haraka/Haraka/commits?author=pvsousalima">3</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/759912?v=4"><br><a href="https://github.com/davebeyer">davebeyer</a> (<a href="https://github.com/haraka/Haraka/commits?author=davebeyer">3</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/706078?v=4"><br><a href="https://github.com/brunolm">brunolm</a> (<a href="https://github.com/haraka/Haraka/commits?author=brunolm">3</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/7008027?v=4"><br><a href="https://github.com/mkp7">mkp7</a> (<a href="https://github.com/haraka/Haraka/commits?author=mkp7">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1007551?v=4"><br><a href="https://github.com/unquietwiki">unquietwiki</a> (<a href="https://github.com/haraka/Haraka/commits?author=unquietwiki">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/10368105?v=4"><br><a href="https://github.com/mtrivera">mtrivera</a> (<a href="https://github.com/haraka/Haraka/commits?author=mtrivera">2</a>)|
|
|
14
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/1829326?v=4"><br><a href="https://github.com/slattery">slattery</a> (<a href="https://github.com/haraka/Haraka/commits?author=slattery">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/8569238?v=4"><br><a href="https://github.com/MuraraAllan">MuraraAllan</a> (<a href="https://github.com/haraka/Haraka/commits?author=MuraraAllan">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/994004?v=4"><br><a href="https://github.com/stefanocoding">stefanocoding</a> (<a href="https://github.com/haraka/Haraka/commits?author=stefanocoding">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/5483299?v=4"><br><a href="https://github.com/thihara">thihara</a> (<a href="https://github.com/haraka/Haraka/commits?author=thihara">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/43457281?v=4"><br><a href="https://github.com/benjamonnguyen">benjamonnguyen</a> (<a href="https://github.com/haraka/Haraka/commits?author=benjamonnguyen">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/15035337?v=4"><br><a href="https://github.com/gtech99">gtech99</a> (<a href="https://github.com/haraka/Haraka/commits?author=gtech99">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/3073292?v=4"><br><a href="https://github.com/joelchornik">joelchornik</a> (<a href="https://github.com/haraka/Haraka/commits?author=joelchornik">2</a>)|
|
|
15
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/1249760?v=4"><br><a href="https://github.com/andreis">andreis</a> (<a href="https://github.com/haraka/Haraka/commits?author=andreis">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/15694566?v=4"><br><a href="https://github.com/apoorv-mishra">apoorv-mishra</a> (<a href="https://github.com/haraka/Haraka/commits?author=apoorv-mishra">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/934178?v=4"><br><a href="https://github.com/vrevo">vrevo</a> (<a href="https://github.com/haraka/Haraka/commits?author=vrevo">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/563469?v=4"><br><a href="https://github.com/niieani">niieani</a> (<a href="https://github.com/haraka/Haraka/commits?author=niieani">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/196198?v=4"><br><a href="https://github.com/hathaway">hathaway</a> (<a href="https://github.com/haraka/Haraka/commits?author=hathaway">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/14928995?v=4"><br><a href="https://github.com/carolinaknoll">carolinaknoll</a> (<a href="https://github.com/haraka/Haraka/commits?author=carolinaknoll">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/654682?v=4"><br><a href="https://github.com/martin1yness">martin1yness</a> (<a href="https://github.com/haraka/Haraka/commits?author=martin1yness">2</a>)|
|
|
16
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/4955052?v=4"><br><a href="https://github.com/chasent">chasent</a> (<a href="https://github.com/haraka/Haraka/commits?author=chasent">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1346804?v=4"><br><a href="https://github.com/louis-lau">louis-lau</a> (<a href="https://github.com/haraka/Haraka/commits?author=louis-lau">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/598809?v=4"><br><a href="https://github.com/tojocky">tojocky</a> (<a href="https://github.com/haraka/Haraka/commits?author=tojocky">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/5428603?v=4"><br><a href="https://github.com/Illirgway">Illirgway</a> (<a href="https://github.com/haraka/Haraka/commits?author=Illirgway">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/444769?v=4"><br><a href="https://github.com/dweekly">dweekly</a> (<a href="https://github.com/haraka/Haraka/commits?author=dweekly">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/48384?v=4"><br><a href="https://github.com/dalibor">dalibor</a> (<a href="https://github.com/haraka/Haraka/commits?author=dalibor">2</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/2956870?v=4"><br><a href="https://github.com/catroll">catroll</a> (<a href="https://github.com/haraka/Haraka/commits?author=catroll">1</a>)|
|
|
17
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/2609361?v=4"><br><a href="https://github.com/zereraz">zereraz</a> (<a href="https://github.com/haraka/Haraka/commits?author=zereraz">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/38491?v=4"><br><a href="https://github.com/darobin">darobin</a> (<a href="https://github.com/haraka/Haraka/commits?author=darobin">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/928787?v=4"><br><a href="https://github.com/Infern1">Infern1</a> (<a href="https://github.com/haraka/Haraka/commits?author=Infern1">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/11057526?v=4"><br><a href="https://github.com/Currerius">Currerius</a> (<a href="https://github.com/haraka/Haraka/commits?author=Currerius">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/6680615?v=4"><br><a href="https://github.com/ckcr4lyf">ckcr4lyf</a> (<a href="https://github.com/haraka/Haraka/commits?author=ckcr4lyf">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/857880?v=4"><br><a href="https://github.com/feisuzhu">feisuzhu</a> (<a href="https://github.com/haraka/Haraka/commits?author=feisuzhu">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/3337824?v=4"><br><a href="https://github.com/pvandijk">pvandijk</a> (<a href="https://github.com/haraka/Haraka/commits?author=pvandijk">1</a>)|
|
|
18
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/651048?v=4"><br><a href="https://github.com/Wesitos">Wesitos</a> (<a href="https://github.com/haraka/Haraka/commits?author=Wesitos">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/114246?v=4"><br><a href="https://github.com/pedroaxl">pedroaxl</a> (<a href="https://github.com/haraka/Haraka/commits?author=pedroaxl">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/600097?v=4"><br><a href="https://github.com/pstadler">pstadler</a> (<a href="https://github.com/haraka/Haraka/commits?author=pstadler">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/163142?v=4"><br><a href="https://github.com/patchlog">patchlog</a> (<a href="https://github.com/haraka/Haraka/commits?author=patchlog">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/109316?v=4"><br><a href="https://github.com/PAStheLoD">PAStheLoD</a> (<a href="https://github.com/haraka/Haraka/commits?author=PAStheLoD">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/3527052?v=4"><br><a href="https://github.com/pjeby">pjeby</a> (<a href="https://github.com/haraka/Haraka/commits?author=pjeby">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/11526146?v=4"><br><a href="https://github.com/noopnik">noopnik</a> (<a href="https://github.com/haraka/Haraka/commits?author=noopnik">1</a>)|
|
|
19
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/10524529?v=4"><br><a href="https://github.com/nmummau">nmummau</a> (<a href="https://github.com/haraka/Haraka/commits?author=nmummau">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1811410?v=4"><br><a href="https://github.com/blackrosezy">blackrosezy</a> (<a href="https://github.com/haraka/Haraka/commits?author=blackrosezy">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/913734?v=4"><br><a href="https://github.com/discretepackets">discretepackets</a> (<a href="https://github.com/haraka/Haraka/commits?author=discretepackets">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/69902?v=4"><br><a href="https://github.com/mfogel">mfogel</a> (<a href="https://github.com/haraka/Haraka/commits?author=mfogel">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/139480?v=4"><br><a href="https://github.com/mjpearson">mjpearson</a> (<a href="https://github.com/haraka/Haraka/commits?author=mjpearson">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/92839?v=4"><br><a href="https://github.com/mjackson">mjackson</a> (<a href="https://github.com/haraka/Haraka/commits?author=mjackson">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/19753510?v=4"><br><a href="https://github.com/michacassola">michacassola</a> (<a href="https://github.com/haraka/Haraka/commits?author=michacassola">1</a>)|
|
|
20
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/16570127?v=4"><br><a href="https://github.com/greenlighttec">greenlighttec</a> (<a href="https://github.com/haraka/Haraka/commits?author=greenlighttec">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/118732?v=4"><br><a href="https://github.com/mcreenan">mcreenan</a> (<a href="https://github.com/haraka/Haraka/commits?author=mcreenan">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/803496?v=4"><br><a href="https://github.com/mskrajnowski">mskrajnowski</a> (<a href="https://github.com/haraka/Haraka/commits?author=mskrajnowski">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/6382246?v=4"><br><a href="https://github.com/yeya">yeya</a> (<a href="https://github.com/haraka/Haraka/commits?author=yeya">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/18624942?v=4"><br><a href="https://github.com/jackwellsxyz">jackwellsxyz</a> (<a href="https://github.com/haraka/Haraka/commits?author=jackwellsxyz">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/115237?v=4"><br><a href="https://github.com/silverwind">silverwind</a> (<a href="https://github.com/haraka/Haraka/commits?author=silverwind">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/24767512?v=4"><br><a href="https://github.com/shurli">shurli</a> (<a href="https://github.com/haraka/Haraka/commits?author=shurli">1</a>)|
|
|
21
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/46054769?v=4"><br><a href="https://github.com/sathishvenkataraman">sathishvenkataraman</a> (<a href="https://github.com/haraka/Haraka/commits?author=sathishvenkataraman">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/8831920?v=4"><br><a href="https://github.com/qhxin">qhxin</a> (<a href="https://github.com/haraka/Haraka/commits?author=qhxin">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/18039170?v=4"><br><a href="https://github.com/pekapl">pekapl</a> (<a href="https://github.com/haraka/Haraka/commits?author=pekapl">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/4928168?v=4"><br><a href="https://github.com/nfnty">nfnty</a> (<a href="https://github.com/haraka/Haraka/commits?author=nfnty">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/21057453?v=4"><br><a href="https://github.com/inmula">inmula</a> (<a href="https://github.com/haraka/Haraka/commits?author=inmula">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/22168943?v=4"><br><a href="https://github.com/mathquis">mathquis</a> (<a href="https://github.com/haraka/Haraka/commits?author=mathquis">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/320906?v=4"><br><a href="https://github.com/martinvd">martinvd</a> (<a href="https://github.com/haraka/Haraka/commits?author=martinvd">1</a>)|
|
|
22
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/217669830?v=4"><br><a href="https://github.com/lmacayo">lmacayo</a> (<a href="https://github.com/haraka/Haraka/commits?author=lmacayo">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/181014?v=4"><br><a href="https://github.com/k2s">k2s</a> (<a href="https://github.com/haraka/Haraka/commits?author=k2s">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/650890?v=4"><br><a href="https://github.com/zombified">zombified</a> (<a href="https://github.com/haraka/Haraka/commits?author=zombified">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1024137?v=4"><br><a href="https://github.com/dhager7">dhager7</a> (<a href="https://github.com/haraka/Haraka/commits?author=dhager7">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/25018388?v=4"><br><a href="https://github.com/ayankel">ayankel</a> (<a href="https://github.com/haraka/Haraka/commits?author=ayankel">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/3277165?v=4"><br><a href="https://github.com/X-Ryl669">X-Ryl669</a> (<a href="https://github.com/haraka/Haraka/commits?author=X-Ryl669">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/952007?v=4"><br><a href="https://github.com/szepeviktor">szepeviktor</a> (<a href="https://github.com/haraka/Haraka/commits?author=szepeviktor">1</a>)|
|
|
23
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/20950126?v=4"><br><a href="https://github.com/varunzxzx">varunzxzx</a> (<a href="https://github.com/haraka/Haraka/commits?author=varunzxzx">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/95691?v=4"><br><a href="https://github.com/noogen">noogen</a> (<a href="https://github.com/haraka/Haraka/commits?author=noogen">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/209270?v=4"><br><a href="https://github.com/TimWolla">TimWolla</a> (<a href="https://github.com/haraka/Haraka/commits?author=TimWolla">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/29933243?v=4"><br><a href="https://github.com/tiagorlampert">tiagorlampert</a> (<a href="https://github.com/haraka/Haraka/commits?author=tiagorlampert">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/912257?v=4"><br><a href="https://github.com/tomscytale">tomscytale</a> (<a href="https://github.com/haraka/Haraka/commits?author=tomscytale">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/5239282?v=4"><br><a href="https://github.com/sriccio">sriccio</a> (<a href="https://github.com/haraka/Haraka/commits?author=sriccio">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/783006?v=4"><br><a href="https://github.com/samnegri">samnegri</a> (<a href="https://github.com/haraka/Haraka/commits?author=samnegri">1</a>)|
|
|
24
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/18592942?v=4"><br><a href="https://github.com/mnsilva">mnsilva</a> (<a href="https://github.com/haraka/Haraka/commits?author=mnsilva">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/44905?v=4"><br><a href="https://github.com/fcoelho">fcoelho</a> (<a href="https://github.com/haraka/Haraka/commits?author=fcoelho">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/8796466?v=4"><br><a href="https://github.com/erickpece">erickpece</a> (<a href="https://github.com/haraka/Haraka/commits?author=erickpece">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/354409?v=4"><br><a href="https://github.com/endreszabo">endreszabo</a> (<a href="https://github.com/haraka/Haraka/commits?author=endreszabo">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/548763?v=4"><br><a href="https://github.com/duanefields">duanefields</a> (<a href="https://github.com/haraka/Haraka/commits?author=duanefields">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/6936055?v=4"><br><a href="https://github.com/DomAmato">DomAmato</a> (<a href="https://github.com/haraka/Haraka/commits?author=DomAmato">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/26029735?v=4"><br><a href="https://github.com/lavieennoir">lavieennoir</a> (<a href="https://github.com/haraka/Haraka/commits?author=lavieennoir">1</a>)|
|
|
25
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/166466?v=4"><br><a href="https://github.com/dspangenberg">dspangenberg</a> (<a href="https://github.com/haraka/Haraka/commits?author=dspangenberg">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/100674?v=4"><br><a href="https://github.com/d--j">d--j</a> (<a href="https://github.com/haraka/Haraka/commits?author=d--j">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/81616?v=4"><br><a href="https://github.com/damoxc">damoxc</a> (<a href="https://github.com/haraka/Haraka/commits?author=damoxc">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/37262317?v=4"><br><a href="https://github.com/dkmaker">dkmaker</a> (<a href="https://github.com/haraka/Haraka/commits?author=dkmaker">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/805639?v=4"><br><a href="https://github.com/cbestall">cbestall</a> (<a href="https://github.com/haraka/Haraka/commits?author=cbestall">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/962436?v=4"><br><a href="https://github.com/txase">txase</a> (<a href="https://github.com/haraka/Haraka/commits?author=txase">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1430118?v=4"><br><a href="https://github.com/thetrompf">thetrompf</a> (<a href="https://github.com/haraka/Haraka/commits?author=thetrompf">1</a>)|
|
|
26
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/623363?v=4"><br><a href="https://github.com/bmatson">bmatson</a> (<a href="https://github.com/haraka/Haraka/commits?author=bmatson">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/47733?v=4"><br><a href="https://github.com/ardiesaeidi">ardiesaeidi</a> (<a href="https://github.com/haraka/Haraka/commits?author=ardiesaeidi">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/47601131?v=4"><br><a href="https://github.com/AprilGrimoire">AprilGrimoire</a> (<a href="https://github.com/haraka/Haraka/commits?author=AprilGrimoire">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/14093131?v=4"><br><a href="https://github.com/andbar">andbar</a> (<a href="https://github.com/haraka/Haraka/commits?author=andbar">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/2813838?v=4"><br><a href="https://github.com/amirkarimi">amirkarimi</a> (<a href="https://github.com/haraka/Haraka/commits?author=amirkarimi">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/332898?v=4"><br><a href="https://github.com/alessioalex">alessioalex</a> (<a href="https://github.com/haraka/Haraka/commits?author=alessioalex">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/124756761?v=4"><br><a href="https://github.com/littleslicebigcity">littleslicebigcity</a> (<a href="https://github.com/haraka/Haraka/commits?author=littleslicebigcity">1</a>)|
|
|
27
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/1177304?v=4"><br><a href="https://github.com/mildsunrise">mildsunrise</a> (<a href="https://github.com/haraka/Haraka/commits?author=mildsunrise">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/30565?v=4"><br><a href="https://github.com/ajimix">ajimix</a> (<a href="https://github.com/haraka/Haraka/commits?author=ajimix">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/58205701?v=4"><br><a href="https://github.com/adarshasp87">adarshasp87</a> (<a href="https://github.com/haraka/Haraka/commits?author=adarshasp87">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/284925?v=4"><br><a href="https://github.com/64kps">64kps</a> (<a href="https://github.com/haraka/Haraka/commits?author=64kps">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/6890321?v=4"><br><a href="https://github.com/httpstersk">httpstersk</a> (<a href="https://github.com/haraka/Haraka/commits?author=httpstersk">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/28440072?v=4"><br><a href="https://github.com/leadbi">leadbi</a> (<a href="https://github.com/haraka/Haraka/commits?author=leadbi">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/22004482?v=4"><br><a href="https://github.com/kajes">kajes</a> (<a href="https://github.com/haraka/Haraka/commits?author=kajes">1</a>)|
|
|
28
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/51789698?v=4"><br><a href="https://github.com/Young-Lord">Young-Lord</a> (<a href="https://github.com/haraka/Haraka/commits?author=Young-Lord">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/11235022?v=4"><br><a href="https://github.com/kzub">kzub</a> (<a href="https://github.com/haraka/Haraka/commits?author=kzub">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/510957?v=4"><br><a href="https://github.com/kevinmartin">kevinmartin</a> (<a href="https://github.com/haraka/Haraka/commits?author=kevinmartin">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/75720?v=4"><br><a href="https://github.com/kgoess">kgoess</a> (<a href="https://github.com/haraka/Haraka/commits?author=kgoess">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/5689132?v=4"><br><a href="https://github.com/mr-karan">mr-karan</a> (<a href="https://github.com/haraka/Haraka/commits?author=mr-karan">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/7114909?v=4"><br><a href="https://github.com/tyranron">tyranron</a> (<a href="https://github.com/haraka/Haraka/commits?author=tyranron">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/49093?v=4"><br><a href="https://github.com/jplock">jplock</a> (<a href="https://github.com/haraka/Haraka/commits?author=jplock">1</a>)|
|
|
29
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/411338?v=4"><br><a href="https://github.com/josteink">josteink</a> (<a href="https://github.com/haraka/Haraka/commits?author=josteink">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/646768?v=4"><br><a href="https://github.com/nebulade">nebulade</a> (<a href="https://github.com/haraka/Haraka/commits?author=nebulade">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/6860647?v=4"><br><a href="https://github.com/GuroKung">GuroKung</a> (<a href="https://github.com/haraka/Haraka/commits?author=GuroKung">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/2649838?v=4"><br><a href="https://github.com/stanek0j">stanek0j</a> (<a href="https://github.com/haraka/Haraka/commits?author=stanek0j">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/55651?v=4"><br><a href="https://github.com/jaredj">jaredj</a> (<a href="https://github.com/haraka/Haraka/commits?author=jaredj">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/397735?v=4"><br><a href="https://github.com/jrb">jrb</a> (<a href="https://github.com/haraka/Haraka/commits?author=jrb">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/1560587?v=4"><br><a href="https://github.com/jkroepke">jkroepke</a> (<a href="https://github.com/haraka/Haraka/commits?author=jkroepke">1</a>)|
|
|
30
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/5376280?v=4"><br><a href="https://github.com/Chopinsky">Chopinsky</a> (<a href="https://github.com/haraka/Haraka/commits?author=Chopinsky">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/195918?v=4"><br><a href="https://github.com/hperrin">hperrin</a> (<a href="https://github.com/haraka/Haraka/commits?author=hperrin">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/376721?v=4"><br><a href="https://github.com/urlund">urlund</a> (<a href="https://github.com/haraka/Haraka/commits?author=urlund">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/7700727?v=4"><br><a href="https://github.com/gwieshammer">gwieshammer</a> (<a href="https://github.com/haraka/Haraka/commits?author=gwieshammer">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/914107?v=4"><br><a href="https://github.com/gpetrioli">gpetrioli</a> (<a href="https://github.com/haraka/Haraka/commits?author=gpetrioli">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/140875?v=4"><br><a href="https://github.com/fabiob">fabiob</a> (<a href="https://github.com/haraka/Haraka/commits?author=fabiob">1</a>)| <img height="80" src="https://avatars.githubusercontent.com/u/400795?v=4"><br><a href="https://github.com/felixrabe">felixrabe</a> (<a href="https://github.com/haraka/Haraka/commits?author=felixrabe">1</a>)|
|
|
31
|
+
| <img height="80" src="https://avatars.githubusercontent.com/u/48409110?v=4"><br><a href="https://github.com/felixauringer">felixauringer</a> (<a href="https://github.com/haraka/Haraka/commits?author=felixauringer">1</a>)
|
|
10
32
|
|
|
11
33
|
<sub>this file is generated by [.release](https://github.com/msimerson/.release).
|
|
12
34
|
Contribute to this project to get your GitHub profile included here.</sub>
|
package/Changes.md
CHANGED
|
@@ -4,6 +4,52 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/).
|
|
|
4
4
|
|
|
5
5
|
### Unreleased
|
|
6
6
|
|
|
7
|
+
### [3.1.4] - 2026-03-30
|
|
8
|
+
|
|
9
|
+
#### Fixed
|
|
10
|
+
|
|
11
|
+
- fix: add ensure_body for late parse_body=true #3539
|
|
12
|
+
- fix(outbound): prevent ERR_UNHANDLED_ERROR crash #3538
|
|
13
|
+
- fix(txn): more robust handling of body filter additions #3537
|
|
14
|
+
- fix(conn): avoid connection fault when 2x QUIT sent #3536
|
|
15
|
+
- fix(txn): more robust handling of broken messages #3535
|
|
16
|
+
- fix(connection): pause after odd SMTP command sequence #3525
|
|
17
|
+
|
|
18
|
+
#### Changed
|
|
19
|
+
|
|
20
|
+
- sunset: remove dot_stuffing (now dot_stuffed)
|
|
21
|
+
- chore(plugins): deleted deprecated core_require
|
|
22
|
+
- dep(rabbitmq): repackaged as NPM module #3526
|
|
23
|
+
- deps(all): bump versions
|
|
24
|
+
- doc(Plugins): add sections filter, enrichment, and logging #3534
|
|
25
|
+
- added dropbox-plugin #3543
|
|
26
|
+
- es2024: #3527, #3528
|
|
27
|
+
- outbound replace fs callback with promises and async/await #3528
|
|
28
|
+
- dep(async): remove dep by replacing async.map with Queue
|
|
29
|
+
- use startsWith instead of indexOf === 0
|
|
30
|
+
- use spread syntax instead of [].concat and {}.assign
|
|
31
|
+
- use implicit arrow function returns
|
|
32
|
+
- replace deprecated substr with slice or substring
|
|
33
|
+
- test: fixes for test-fixtures 1.4 & local plugins that do require('./')
|
|
34
|
+
- outbound/queue: added tests #3531
|
|
35
|
+
- TL;DR: bundled plugins don't need a special require any more
|
|
36
|
+
- fixtures/plugin behaves more like real one, test accordingly
|
|
37
|
+
- refactored connection, transaction, and outbound to `node --test` #3541
|
|
38
|
+
- transaction.js (48 → 62 tests)
|
|
39
|
+
- connection.js (24 → 51 tests)
|
|
40
|
+
- moved ./test/outbound_* to ./test/outbound/, and fixed race conditions
|
|
41
|
+
- move TLS tests to haraka-tls #3542
|
|
42
|
+
- improve coverage for transaction, rfc1869, xclient, and record_envelope_addresses #3524
|
|
43
|
+
|
|
44
|
+
### [3.1.3] - 2026-02-06
|
|
45
|
+
|
|
46
|
+
- deps(graph): removed, sqlite3 library is unmaintained
|
|
47
|
+
- deps: bump all to latest
|
|
48
|
+
- outbound: fix aggregate error path #3519
|
|
49
|
+
- doc: fix no plugin names displayed with haraka --order #3517
|
|
50
|
+
- haraka: fixed getHooks regex to grab only hook names
|
|
51
|
+
- config: spool_dir and spool_after belong in connection.ini
|
|
52
|
+
|
|
7
53
|
### [3.1.2] - 2026-01-02
|
|
8
54
|
|
|
9
55
|
- smtp_forward: [domain selector] : user + domain #3501
|
|
@@ -1749,3 +1795,5 @@ config files.
|
|
|
1749
1795
|
[3.1.1]: https://github.com/haraka/Haraka/releases/tag/v3.1.1
|
|
1750
1796
|
[3.1.0]: https://github.com/haraka/Haraka/releases/tag/v3.1.0
|
|
1751
1797
|
[3.1.2]: https://github.com/haraka/Haraka/releases/tag/v3.1.2
|
|
1798
|
+
[3.1.3]: https://github.com/haraka/Haraka/releases/tag/v3.1.3
|
|
1799
|
+
[3.1.4]: https://github.com/haraka/Haraka/releases/tag/v3.1.4
|
package/Plugins.md
CHANGED
|
@@ -35,6 +35,52 @@ A comprehensive list of known plugins. Create a PR to add yours to these lists.
|
|
|
35
35
|
| [opendkim][url-opendkim] | DKIM sign and verify email messages |
|
|
36
36
|
| [spf][url-spf] | Perform SPF checks |
|
|
37
37
|
|
|
38
|
+
### Enrichment Plugins
|
|
39
|
+
|
|
40
|
+
| Name | Description |
|
|
41
|
+
| ------------------------------ | ------------------------------------------ |
|
|
42
|
+
| [ASN][url-asn] | Get ASN info for remote senders |
|
|
43
|
+
| [fcrdns][url-fcrdns] | Forward Confirmed reverse DNS |
|
|
44
|
+
| [geoip][url-geoip] | get geographic information about mail senders |
|
|
45
|
+
| [p0f][url-p0f] | TCP Fingerprinting |
|
|
46
|
+
| [karma][url-karma] | Dynamic scoring of incoming connections |
|
|
47
|
+
| [known-senders][url-known-senders] | Reward emails from those you send mail to |
|
|
48
|
+
| [record_envelope_addresses][url-recordenv] | Adds message headers with ENV recips |
|
|
49
|
+
|
|
50
|
+
### Filtering Plugins
|
|
51
|
+
|
|
52
|
+
| Name | Description |
|
|
53
|
+
| ------------------------------ | ------------------------------------------ |
|
|
54
|
+
| [attachment][url-attach] | Restrict attachment types |
|
|
55
|
+
| [block_me][url-blockme] | Populate block list via forwarded emails |
|
|
56
|
+
| [avg][url-avg] | AVG antivirus scanner |
|
|
57
|
+
| [clamd][url-clamd] | Anti-Virus scanning with ClamAV |
|
|
58
|
+
| [data.signatures][url-sigs] | Block emails whose bodies match signatures |
|
|
59
|
+
| [dcc][url-dcc] | Distributed Checksum Clearinghouse |
|
|
60
|
+
| [dns-list][url-dns-list] | Check against DNS and reputation lists |
|
|
61
|
+
| [early_talker][url-early] | Reject remotes that talk early |
|
|
62
|
+
| [esets][url-esets] | Virus scanning with ESET Mail Security |
|
|
63
|
+
| [greylist][url-greylist] | Greylisting |
|
|
64
|
+
| [helo.checks][url-helo] | Validity checks of the HELO string |
|
|
65
|
+
| [mail_from.is_resolvable][url-mfres] | Verifies the MAIL FROM domain resolves to a MX |
|
|
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
|
+
### Logging & Telemetry
|
|
73
|
+
|
|
74
|
+
| Name | Description |
|
|
75
|
+
| -------------------------------- | ------------------------------------------------------------------------ |
|
|
76
|
+
| [accounting_files][url-acc-files] | Retrieve, Store and Archive custom information of outbound traffic |
|
|
77
|
+
| [elasticsearch][url-elastic] | Store message metadata in Elasticsearch |
|
|
78
|
+
| [log reader][url-logreader] | extract log entries from the haraka log file |
|
|
79
|
+
| [outbound-logger][url-outbound-logger] | JSON logging of outbound email. Logs metadata about delivered/bounced emails |
|
|
80
|
+
| [process_title][url-proctitle] | Populate `ps` output with activity counters |
|
|
81
|
+
| [syslog][url-syslog] | Log to syslog |
|
|
82
|
+
| [watch][url-watch] | Watch live SMTP traffic in a web interface |
|
|
83
|
+
|
|
38
84
|
### Queue Plugins
|
|
39
85
|
|
|
40
86
|
| Name | Description |
|
|
@@ -53,72 +99,43 @@ A comprehensive list of known plugins. Create a PR to add yours to these lists.
|
|
|
53
99
|
| [smtp_proxy][url-qproxy] | Proxy SMTP connections to another MTA |
|
|
54
100
|
| [wildduck][url-wildduck] | queue messages to Wild Duck |
|
|
55
101
|
|
|
56
|
-
###
|
|
102
|
+
### Recipient Validation
|
|
57
103
|
|
|
58
|
-
| Name
|
|
59
|
-
|
|
|
60
|
-
| [
|
|
61
|
-
| [
|
|
62
|
-
| [
|
|
63
|
-
| [
|
|
64
|
-
| [
|
|
65
|
-
| [
|
|
66
|
-
| [
|
|
67
|
-
| [
|
|
68
|
-
| [
|
|
69
|
-
| [spamassassin][url-spamass] | Scan emails with SpamAssassin |
|
|
70
|
-
| [uribl][url-uribl] | Block based on URI blacklists |
|
|
104
|
+
| Name | Description |
|
|
105
|
+
| -----------------------------------| ----------------------------------------------------- |
|
|
106
|
+
| [dovecot][url-dovecot] | Recipient validation & SMTP AUTH against dovecot |
|
|
107
|
+
| [LDAP][url-ldap] | Aliases, Auth, and Recipient validation from LDAP |
|
|
108
|
+
| [recipient-routes][url-rroutes] | Route emails based on their recipient(s) |
|
|
109
|
+
| [rcpt_to.in_host_list][url-rhost] | Define local email domains in a file |
|
|
110
|
+
| [rcpt_to.ldap][url-rcpt-ldap] | Validate recipients against LDAP |
|
|
111
|
+
| [rcpt-postgresql][url-postgres] | validate recipients against PostgreSQL |
|
|
112
|
+
| [qmail-deliverable][url-rqmd] | Validate recipients against Qmail-Deliverable |
|
|
113
|
+
| [vmta][url-vmta] | Virtual MTA management |
|
|
114
|
+
| [wildduck][url-wildduck] | provides recipient checks against Wild Duck |
|
|
71
115
|
|
|
72
116
|
### Every other Plugin
|
|
73
117
|
|
|
74
|
-
| Name | Description
|
|
75
|
-
| ------------------------------------------ |
|
|
76
|
-
| [access][url-access] | ACLs based on IPs, domains, email addrs, etc.
|
|
77
|
-
| [
|
|
78
|
-
| [
|
|
79
|
-
| [
|
|
80
|
-
| [
|
|
81
|
-
| [
|
|
82
|
-
| [
|
|
83
|
-
| [
|
|
84
|
-
| [
|
|
85
|
-
| [
|
|
86
|
-
| [
|
|
87
|
-
| [
|
|
88
|
-
| [
|
|
89
|
-
| [
|
|
90
|
-
| [
|
|
91
|
-
| [
|
|
92
|
-
| [
|
|
93
|
-
| [
|
|
94
|
-
| [
|
|
95
|
-
| [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 |
|
|
121
|
-
| [save-sent][url-save-sent] | Save sent emails on the serverside to a mailbox of the sender |
|
|
118
|
+
| Name | Description |
|
|
119
|
+
| ------------------------------------------ | --------------------------------------------------------------- |
|
|
120
|
+
| [access][url-access] | ACLs based on IPs, domains, email addrs, etc. |
|
|
121
|
+
| [aliases][url-aliases] | Email aliases |
|
|
122
|
+
| [bounce][url-bounce] | Many options for bounce processing |
|
|
123
|
+
| [delay_deny][url-delay] | Delays all pre-DATA 'deny' results |
|
|
124
|
+
| [dovecot][url-dovecot] | Recipient validation & SMTP AUTH against dovecot |
|
|
125
|
+
| [headers][url-headers] | Inspect and verify various email headers |
|
|
126
|
+
| [Limit][url-limit] | Apply many types of limits to SMTP connections |
|
|
127
|
+
| [prevent_credential_leaks][url-creds] | Prevent users from emailing their credentials |
|
|
128
|
+
| [redis][url-redis] | multi-purpose Redis db connection(s) |
|
|
129
|
+
| [relay][url-relay] | Manage relay permissions |
|
|
130
|
+
| [reseed_rng][url-rng] | Reseed the RNG |
|
|
131
|
+
| [batv-srs][url-batv] | BATV & SRS |
|
|
132
|
+
| [srs][url-srs] | Sender Rewriting Scheme |
|
|
133
|
+
| [tarpit][url-tarpit] | Slow down connections |
|
|
134
|
+
| [tls][url-tls] | Implements TLS |
|
|
135
|
+
| [toobusy][url-toobusy] | Defers connections when too busy |
|
|
136
|
+
| [xclient][url-xclient] | Implements XCLIENT |
|
|
137
|
+
| [save-sent][url-save-sent] | Save sent emails on the serverside to a mailbox of the sender |
|
|
138
|
+
| [dropbox][url-dropbox] | Forward incoming emails to configured Dropbox webhook URLs. |
|
|
122
139
|
|
|
123
140
|
<!-- URLs tucked safely out of the way -->
|
|
124
141
|
|
|
@@ -178,8 +195,7 @@ A comprehensive list of known plugins. Create a PR to add yours to these lists.
|
|
|
178
195
|
[url-qlmtp]: https://github.com/haraka/Haraka/blob/master/docs/plugins/queue/lmtp.md
|
|
179
196
|
[url-qmail]: https://github.com/haraka/Haraka/blob/master/docs/plugins/queue/qmail-queue.md
|
|
180
197
|
[url-qquart]: https://github.com/haraka/Haraka/blob/master/docs/plugins/queue/quarantine.md
|
|
181
|
-
[url-qrabbit]: https://github.com/haraka/
|
|
182
|
-
[url-qrabbita]: https://github.com/haraka/Haraka/blob/master/docs/plugins/queue/rabbitmq_amqplib.md
|
|
198
|
+
[url-qrabbit]: https://github.com/haraka/haraka-plugin-queue-rabbitmq
|
|
183
199
|
[url-qbridge]: https://github.com/haraka/Haraka/blob/master/docs/plugins/queue/smtp_bridge.md
|
|
184
200
|
[url-qforward]: https://github.com/haraka/Haraka/blob/master/docs/plugins/queue/smtp_forward.md
|
|
185
201
|
[url-qproxy]: https://github.com/haraka/Haraka/blob/master/docs/plugins/queue/smtp_proxy.md
|
|
@@ -208,3 +224,4 @@ A comprehensive list of known plugins. Create a PR to add yours to these lists.
|
|
|
208
224
|
[url-kafka]: https://github.com/benjamonnguyen/haraka-plugin-queue-kafka
|
|
209
225
|
[url-mailauth]: https://www.npmjs.com/package/haraka-plugin-mailauth
|
|
210
226
|
[url-save-sent]: https://github.com/AprilGrimoire/haraka-plugin-save-sent
|
|
227
|
+
[url-dropbox]: https://github.com/dspangenberg/haraka-plugin-dropbox
|
package/README.md
CHANGED
|
@@ -10,7 +10,7 @@ in asynchronous JS and are very fast.
|
|
|
10
10
|
|
|
11
11
|
Haraka has very good spam protection (see [plugins][4]) and works
|
|
12
12
|
well as a filtering [MTA][3]. It also works well as a [MSA][5] running on
|
|
13
|
-
port 587 with auth and [
|
|
13
|
+
port 587 with auth and [dkim][6] plugins enabled.
|
|
14
14
|
|
|
15
15
|
Haraka makes no attempt to be a mail store (like Exchange or Postfix/Exim/Qmail),
|
|
16
16
|
a [LDA][7], nor an IMAP server (like Dovecot or Courier). Haraka is
|
package/bin/haraka
CHANGED
|
@@ -239,8 +239,8 @@ function getHooks() {
|
|
|
239
239
|
.toString()
|
|
240
240
|
.split('## Available Hooks')[1] // discard everything before this string
|
|
241
241
|
.split('### rcpt')[0] // discard everything after this string
|
|
242
|
-
.match(
|
|
243
|
-
.map((a) => a.replace(
|
|
242
|
+
.match(/^-\s+\w+/gmu) // grab hook names from lines starting with '- '
|
|
243
|
+
.map((a) => a.replace(/^-\s+/u, '')) // strip list prefix
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
let config
|
|
@@ -286,7 +286,7 @@ if (parsed.version) {
|
|
|
286
286
|
if (process.env.PAGER) {
|
|
287
287
|
const pager_split = process.env.PAGER.split(/ +/)
|
|
288
288
|
pager = pager_split.shift()
|
|
289
|
-
md_path = pager_split
|
|
289
|
+
md_path = [...pager_split, ...md_path]
|
|
290
290
|
}
|
|
291
291
|
|
|
292
292
|
const less = child.spawn(pager, md_path, { stdio: 'inherit' })
|
|
@@ -310,7 +310,8 @@ if (parsed.version) {
|
|
|
310
310
|
logger = require(path.join(base, 'logger'))
|
|
311
311
|
if (!parsed.verbose) logger.log = noop // disable logging
|
|
312
312
|
outbound = require(path.join(base, 'outbound'))
|
|
313
|
-
|
|
313
|
+
;(async () => {
|
|
314
|
+
const qlist = await outbound.list_queue()
|
|
314
315
|
for (const todo of qlist) {
|
|
315
316
|
console.log(
|
|
316
317
|
sprintf(
|
|
@@ -323,7 +324,7 @@ if (parsed.version) {
|
|
|
323
324
|
)
|
|
324
325
|
}
|
|
325
326
|
process.exit()
|
|
326
|
-
})
|
|
327
|
+
})()
|
|
327
328
|
} else if (parsed.qstat) {
|
|
328
329
|
if (!parsed.configs) fail('qstat option requires config path')
|
|
329
330
|
|
|
@@ -331,10 +332,11 @@ if (parsed.version) {
|
|
|
331
332
|
logger = require(path.join(base, 'logger'))
|
|
332
333
|
if (!parsed.verbose) logger.log = noop // disable logging
|
|
333
334
|
outbound = require(path.join(base, 'outbound'))
|
|
334
|
-
|
|
335
|
+
;(async () => {
|
|
336
|
+
const stats = await outbound.stat_queue()
|
|
335
337
|
console.log(stats)
|
|
336
338
|
process.exit()
|
|
337
|
-
})
|
|
339
|
+
})()
|
|
338
340
|
} else if (parsed.qunstick) {
|
|
339
341
|
if (!parsed.configs) fail('qunstick option requires config path')
|
|
340
342
|
const domain = parsed.qunstick.toLowerCase()
|
package/config/connection.ini
CHANGED
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
;
|
|
2
2
|
[main]
|
|
3
3
|
|
|
4
|
+
; Spooling
|
|
5
|
+
; Save memory by spooling large messages to disk
|
|
6
|
+
; directory to create temporary spool files in (default: /tmp - see https://github.com/haraka/message-stream)
|
|
7
|
+
; spool_dir=/var/spool/haraka
|
|
8
|
+
; Specify -1 to never spool to disk (default)
|
|
9
|
+
; Specify 0 to always spool to disk
|
|
10
|
+
; Otherwise specify a size in bytes, once reached the
|
|
11
|
+
; message will be spooled to disk to save memory.
|
|
12
|
+
; spool_after=
|
|
13
|
+
|
|
4
14
|
; Require senders to conform to RFC 1869 and RFC 821 when sending the MAIL FROM and RCPT TO commands. In particular, the inclusion of spurious spaces or missing angle brackets will be rejected.
|
|
5
15
|
; strict_rfc1869 = false
|
|
6
16
|
|
package/config/smtp.ini
CHANGED
|
@@ -30,15 +30,6 @@
|
|
|
30
30
|
;daemon_log_file=/var/log/haraka.log
|
|
31
31
|
;daemon_pid_file=/var/run/haraka.pid
|
|
32
32
|
|
|
33
|
-
; Spooling
|
|
34
|
-
; Save memory by spooling large messages to disk
|
|
35
|
-
;spool_dir=/var/spool/haraka
|
|
36
|
-
; Specify -1 to never spool to disk
|
|
37
|
-
; Specify 0 to always spool to disk
|
|
38
|
-
; Otherwise specify a size in bytes, once reached the
|
|
39
|
-
; message will be spooled to disk to save memory.
|
|
40
|
-
;spool_after=
|
|
41
|
-
|
|
42
33
|
; Force Shutdown Timeout
|
|
43
34
|
; - Haraka tries to close down gracefully, but if everything is shut down
|
|
44
35
|
; after this time it will hard close. 30s is usually long enough to
|