Merge branch 'master' into docs/misc-improvements

This commit is contained in:
georglauterbach 2024-01-15 10:52:37 +01:00
commit 53cbd9e26b
No known key found for this signature in database
GPG Key ID: F367F7C43C118578
9 changed files with 209 additions and 193 deletions

View File

@ -20,7 +20,7 @@ All notable changes to this project will be documented in this file. The format
### Updates
- **Tests**:
- Refactored mail sending ([#3747](https://github.com/docker-mailserver/docker-mailserver/pull/3747)):
- Refactored mail sending ([#3747](https://github.com/docker-mailserver/docker-mailserver/pull/3747) & [#3772](https://github.com/docker-mailserver/docker-mailserver/pull/3772)):
- This change is a follow-up to [#3732](https://github.com/docker-mailserver/docker-mailserver/pull/3732) from DMS v13.2.
- `swaks` version is now the latest from Github releases instead of the Debian package.
- `_nc_wrapper`, `_send_mail` and related helpers expect the `.txt` filepath extension again.

View File

@ -321,46 +321,10 @@ Thanks goes to these wonderful people ✨
</a>
</td>
<td align="center">
<a href="https://github.com/egavard">
<img src="https://avatars.githubusercontent.com/u/7823622?v=4" width="100;" alt="egavard"/>
<a href="https://github.com/kiliant">
<img src="https://avatars.githubusercontent.com/u/5897310?v=4" width="100;" alt="kiliant"/>
<br />
<sub><b>egavard</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/mathuin">
<img src="https://avatars.githubusercontent.com/u/221823?v=4" width="100;" alt="mathuin"/>
<br />
<sub><b>mathuin</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/dashohoxha">
<img src="https://avatars.githubusercontent.com/u/1495805?v=4" width="100;" alt="dashohoxha"/>
<br />
<sub><b>dashohoxha</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/jamebus">
<img src="https://avatars.githubusercontent.com/u/573734?v=4" width="100;" alt="jamebus"/>
<br />
<sub><b>jamebus</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/lukecyca">
<img src="https://avatars.githubusercontent.com/u/366484?v=4" width="100;" alt="lukecyca"/>
<br />
<sub><b>lukecyca</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/okainov">
<img src="https://avatars.githubusercontent.com/u/918446?v=4" width="100;" alt="okainov"/>
<br />
<sub><b>okainov</b></sub>
<sub><b>kiliant</b></sub>
</a>
</td>
<td align="center">
@ -371,53 +335,68 @@ Thanks goes to these wonderful people ✨
</a>
</td>
<td align="center">
<a href="https://github.com/kiliant">
<img src="https://avatars.githubusercontent.com/u/5897310?v=4" width="100;" alt="kiliant"/>
<a href="https://github.com/okainov">
<img src="https://avatars.githubusercontent.com/u/918446?v=4" width="100;" alt="okainov"/>
<br />
<sub><b>kiliant</b></sub>
<sub><b>okainov</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/m-schmoock">
<img src="https://avatars.githubusercontent.com/u/4090425?v=4" width="100;" alt="m-schmoock"/>
<a href="https://github.com/lukecyca">
<img src="https://avatars.githubusercontent.com/u/366484?v=4" width="100;" alt="lukecyca"/>
<br />
<sub><b>m-schmoock</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/mjung">
<img src="https://avatars.githubusercontent.com/u/1105431?v=4" width="100;" alt="mjung"/>
<br />
<sub><b>mjung</b></sub>
<sub><b>lukecyca</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/VanVan">
<img src="https://avatars.githubusercontent.com/u/388581?v=4" width="100;" alt="VanVan"/>
<a href="https://github.com/jsonn">
<img src="https://avatars.githubusercontent.com/u/296817?v=4" width="100;" alt="jsonn"/>
<br />
<sub><b>VanVan</b></sub>
<sub><b>jsonn</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/andreasgerstmayr">
<img src="https://avatars.githubusercontent.com/u/538011?v=4" width="100;" alt="andreasgerstmayr"/>
<a href="https://github.com/jamebus">
<img src="https://avatars.githubusercontent.com/u/573734?v=4" width="100;" alt="jamebus"/>
<br />
<sub><b>andreasgerstmayr</b></sub>
<sub><b>jamebus</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/davidszp">
<img src="https://avatars.githubusercontent.com/u/15107452?v=4" width="100;" alt="davidszp"/>
<a href="https://github.com/dashohoxha">
<img src="https://avatars.githubusercontent.com/u/1495805?v=4" width="100;" alt="dashohoxha"/>
<br />
<sub><b>davidszp</b></sub>
<sub><b>dashohoxha</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/kamuri">
<img src="https://avatars.githubusercontent.com/u/2777769?v=4" width="100;" alt="kamuri"/>
<a href="https://github.com/mathuin">
<img src="https://avatars.githubusercontent.com/u/221823?v=4" width="100;" alt="mathuin"/>
<br />
<sub><b>kamuri</b></sub>
<sub><b>mathuin</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/egavard">
<img src="https://avatars.githubusercontent.com/u/7823622?v=4" width="100;" alt="egavard"/>
<br />
<sub><b>egavard</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/weo">
<img src="https://avatars.githubusercontent.com/u/239722?v=4" width="100;" alt="weo"/>
<br />
<sub><b>weo</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/Zehir">
<img src="https://avatars.githubusercontent.com/u/845225?v=4" width="100;" alt="Zehir"/>
<br />
<sub><b>Zehir</b></sub>
</a>
</td>
<td align="center">
@ -428,18 +407,46 @@ Thanks goes to these wonderful people ✨
</a>
</td>
<td align="center">
<a href="https://github.com/Zehir">
<img src="https://avatars.githubusercontent.com/u/845225?v=4" width="100;" alt="Zehir"/>
<a href="https://github.com/kamuri">
<img src="https://avatars.githubusercontent.com/u/2777769?v=4" width="100;" alt="kamuri"/>
<br />
<sub><b>Zehir</b></sub>
<sub><b>kamuri</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/davidszp">
<img src="https://avatars.githubusercontent.com/u/15107452?v=4" width="100;" alt="davidszp"/>
<br />
<sub><b>davidszp</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/andreasgerstmayr">
<img src="https://avatars.githubusercontent.com/u/538011?v=4" width="100;" alt="andreasgerstmayr"/>
<br />
<sub><b>andreasgerstmayr</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/VanVan">
<img src="https://avatars.githubusercontent.com/u/388581?v=4" width="100;" alt="VanVan"/>
<br />
<sub><b>VanVan</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/weo">
<img src="https://avatars.githubusercontent.com/u/239722?v=4" width="100;" alt="weo"/>
<a href="https://github.com/mjung">
<img src="https://avatars.githubusercontent.com/u/1105431?v=4" width="100;" alt="mjung"/>
<br />
<sub><b>weo</b></sub>
<sub><b>mjung</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/m-schmoock">
<img src="https://avatars.githubusercontent.com/u/4090425?v=4" width="100;" alt="m-schmoock"/>
<br />
<sub><b>m-schmoock</b></sub>
</a>
</td>
<td align="center">
@ -469,15 +476,15 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>Starbix</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/citec">
<img src="https://avatars.githubusercontent.com/u/4775008?v=4" width="100;" alt="citec"/>
<br />
<sub><b>citec</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/yajo">
<img src="https://avatars.githubusercontent.com/u/973709?v=4" width="100;" alt="yajo"/>
@ -492,13 +499,6 @@ Thanks goes to these wonderful people ✨
<sub><b>analogue</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/MakerMatrix">
<img src="https://avatars.githubusercontent.com/u/52144433?v=4" width="100;" alt="MakerMatrix"/>
<br />
<sub><b>MakerMatrix</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/Rubytastic2">
<img src="https://avatars.githubusercontent.com/u/21036612?v=4" width="100;" alt="Rubytastic2"/>
@ -514,10 +514,10 @@ Thanks goes to these wonderful people ✨
</a>
</td>
<td align="center">
<a href="https://github.com/jsonn">
<img src="https://avatars.githubusercontent.com/u/296817?v=4" width="100;" alt="jsonn"/>
<a href="https://github.com/MakerMatrix">
<img src="https://avatars.githubusercontent.com/u/52144433?v=4" width="100;" alt="MakerMatrix"/>
<br />
<sub><b>jsonn</b></sub>
<sub><b>MakerMatrix</b></sub>
</a>
</td></tr>
<tr>
@ -642,26 +642,33 @@ Thanks goes to these wonderful people ✨
<sub><b>yogo1212</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/mpanneck">
<img src="https://avatars.githubusercontent.com/u/37032012?v=4" width="100;" alt="mpanneck"/>
<br />
<sub><b>mpanneck</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/willtho89">
<img src="https://avatars.githubusercontent.com/u/4933503?v=4" width="100;" alt="willtho89"/>
<br />
<sub><b>willtho89</b></sub>
</a>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/mpanneck">
<img src="https://avatars.githubusercontent.com/u/37032012?v=4" width="100;" alt="mpanneck"/>
<br />
<sub><b>mpanneck</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/ubenmackin">
<img src="https://avatars.githubusercontent.com/u/11615536?v=4" width="100;" alt="ubenmackin"/>
<a href="https://github.com/aminvakil">
<img src="https://avatars.githubusercontent.com/u/12948692?v=4" width="100;" alt="aminvakil"/>
<br />
<sub><b>ubenmackin</b></sub>
<sub><b>aminvakil</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/elbracht">
<img src="https://avatars.githubusercontent.com/u/2912000?v=4" width="100;" alt="elbracht"/>
<br />
<sub><b>elbracht</b></sub>
</a>
</td>
<td align="center">
@ -679,17 +686,10 @@ Thanks goes to these wonderful people ✨
</a>
</td>
<td align="center">
<a href="https://github.com/aminvakil">
<img src="https://avatars.githubusercontent.com/u/12948692?v=4" width="100;" alt="aminvakil"/>
<a href="https://github.com/ubenmackin">
<img src="https://avatars.githubusercontent.com/u/11615536?v=4" width="100;" alt="ubenmackin"/>
<br />
<sub><b>aminvakil</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/elbracht">
<img src="https://avatars.githubusercontent.com/u/2912000?v=4" width="100;" alt="elbracht"/>
<br />
<sub><b>elbracht</b></sub>
<sub><b>ubenmackin</b></sub>
</a>
</td></tr>
<tr>
@ -780,10 +780,17 @@ Thanks goes to these wonderful people ✨
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/fl42">
<img src="https://avatars.githubusercontent.com/u/46161216?v=4" width="100;" alt="fl42"/>
<a href="https://github.com/jamesfryer">
<img src="https://avatars.githubusercontent.com/u/2470760?v=4" width="100;" alt="jamesfryer"/>
<br />
<sub><b>fl42</b></sub>
<sub><b>jamesfryer</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/eltociear">
<img src="https://avatars.githubusercontent.com/u/22633385?v=4" width="100;" alt="eltociear"/>
<br />
<sub><b>eltociear</b></sub>
</a>
</td>
<td align="center">
@ -801,17 +808,10 @@ Thanks goes to these wonderful people ✨
</a>
</td>
<td align="center">
<a href="https://github.com/jamesfryer">
<img src="https://avatars.githubusercontent.com/u/2470760?v=4" width="100;" alt="jamesfryer"/>
<a href="https://github.com/fl42">
<img src="https://avatars.githubusercontent.com/u/46161216?v=4" width="100;" alt="fl42"/>
<br />
<sub><b>jamesfryer</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/eltociear">
<img src="https://avatars.githubusercontent.com/u/22633385?v=4" width="100;" alt="eltociear"/>
<br />
<sub><b>eltociear</b></sub>
<sub><b>fl42</b></sub>
</a>
</td>
<td align="center">
@ -944,10 +944,10 @@ Thanks goes to these wonderful people ✨
</a>
</td>
<td align="center">
<a href="https://github.com/0xflotus">
<img src="https://avatars.githubusercontent.com/u/26602940?v=4" width="100;" alt="0xflotus"/>
<a href="https://github.com/nilshoell">
<img src="https://avatars.githubusercontent.com/u/33981934?v=4" width="100;" alt="nilshoell"/>
<br />
<sub><b>0xflotus</b></sub>
<sub><b>nilshoell</b></sub>
</a>
</td></tr>
<tr>
@ -1388,6 +1388,13 @@ Thanks goes to these wonderful people ✨
<sub><b>mchamplain</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/0xflotus">
<img src="https://avatars.githubusercontent.com/u/26602940?v=4" width="100;" alt="0xflotus"/>
<br />
<sub><b>0xflotus</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/auchri">
<img src="https://avatars.githubusercontent.com/u/5092164?v=4" width="100;" alt="auchri"/>
@ -1415,15 +1422,15 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>damianmoore</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/espitall">
<img src="https://avatars.githubusercontent.com/u/1910925?v=4" width="100;" alt="espitall"/>
<br />
<sub><b>espitall</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/dkarski">
<img src="https://avatars.githubusercontent.com/u/17147149?v=4" width="100;" alt="dkarski"/>
@ -1458,15 +1465,15 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>mazzz1y</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/aydodo">
<img src="https://avatars.githubusercontent.com/u/5312040?v=4" width="100;" alt="aydodo"/>
<br />
<sub><b>aydodo</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/vedtam">
<img src="https://avatars.githubusercontent.com/u/4981592?v=4" width="100;" alt="vedtam"/>
@ -1501,15 +1508,15 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>ErikEngerd</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/huncode">
<img src="https://avatars.githubusercontent.com/u/1650008?v=4" width="100;" alt="huncode"/>
<br />
<sub><b>huncode</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/felixn">
<img src="https://avatars.githubusercontent.com/u/221502?v=4" width="100;" alt="felixn"/>
@ -1544,15 +1551,15 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>20th</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/2b">
<img src="https://avatars.githubusercontent.com/u/829041?v=4" width="100;" alt="2b"/>
<br />
<sub><b>2b</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/askz">
<img src="https://avatars.githubusercontent.com/u/854038?v=4" width="100;" alt="askz"/>
@ -1587,15 +1594,15 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>alexanderneu</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/ch3sh1r">
<img src="https://avatars.githubusercontent.com/u/441777?v=4" width="100;" alt="ch3sh1r"/>
<br />
<sub><b>ch3sh1r</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/eglia">
<img src="https://avatars.githubusercontent.com/u/17555261?v=4" width="100;" alt="eglia"/>
@ -1630,15 +1637,15 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>MrFreezeex</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/arunvc">
<img src="https://avatars.githubusercontent.com/u/9069988?v=4" width="100;" alt="arunvc"/>
<br />
<sub><b>arunvc</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/astrocket">
<img src="https://avatars.githubusercontent.com/u/18032062?v=4" width="100;" alt="astrocket"/>
@ -1673,15 +1680,22 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>crash7</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/fkefer">
<img src="https://avatars.githubusercontent.com/u/1140674?v=4" width="100;" alt="fkefer"/>
<br />
<sub><b>fkefer</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/KCrawley">
<img src="https://avatars.githubusercontent.com/u/60195478?v=4" width="100;" alt="KCrawley"/>
<br />
<sub><b>KCrawley</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/khuedoan">
<img src="https://avatars.githubusercontent.com/u/27996771?v=4" width="100;" alt="khuedoan"/>
@ -1709,7 +1723,8 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>linhandev</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/luke-">
<img src="https://avatars.githubusercontent.com/u/4736168?v=4" width="100;" alt="luke-"/>
@ -1723,8 +1738,7 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>LucidityCrash</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/MadsRC">
<img src="https://avatars.githubusercontent.com/u/2797266?v=4" width="100;" alt="MadsRC"/>
@ -1752,7 +1766,8 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>dragetd</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/michaeljensen">
<img src="https://avatars.githubusercontent.com/u/3026633?v=4" width="100;" alt="michaeljensen"/>
@ -1766,8 +1781,7 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>exhuma</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/milas">
<img src="https://avatars.githubusercontent.com/u/841263?v=4" width="100;" alt="milas"/>
@ -1795,7 +1809,8 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>mpldr</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/naveensrinivasan">
<img src="https://avatars.githubusercontent.com/u/172697?v=4" width="100;" alt="naveensrinivasan"/>
@ -1809,8 +1824,7 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>neuralp</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/radicand">
<img src="https://avatars.githubusercontent.com/u/673843?v=4" width="100;" alt="radicand"/>
@ -1818,13 +1832,6 @@ Thanks goes to these wonderful people ✨
<sub><b>radicand</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/nilshoell">
<img src="https://avatars.githubusercontent.com/u/33981934?v=4" width="100;" alt="nilshoell"/>
<br />
<sub><b>nilshoell</b></sub>
</a>
</td>
<td align="center">
<a href="https://github.com/frugan-dev">
<img src="https://avatars.githubusercontent.com/u/7957714?v=4" width="100;" alt="frugan-dev"/>
@ -1845,15 +1852,15 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>glandais</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/GiovanH">
<img src="https://avatars.githubusercontent.com/u/6759280?v=4" width="100;" alt="GiovanH"/>
<br />
<sub><b>GiovanH</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/harryyoud">
<img src="https://avatars.githubusercontent.com/u/10576381?v=4" width="100;" alt="harryyoud"/>
@ -1888,15 +1895,15 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>jcalfee</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/mivek">
<img src="https://avatars.githubusercontent.com/u/9912558?v=4" width="100;" alt="mivek"/>
<br />
<sub><b>mivek</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/init-js">
<img src="https://avatars.githubusercontent.com/u/1110751?v=4" width="100;" alt="init-js"/>
@ -1931,15 +1938,15 @@ Thanks goes to these wonderful people ✨
<br />
<sub><b>jmccl</b></sub>
</a>
</td>
</td></tr>
<tr>
<td align="center">
<a href="https://github.com/jurekbarth">
<img src="https://avatars.githubusercontent.com/u/4249843?v=4" width="100;" alt="jurekbarth"/>
<br />
<sub><b>jurekbarth</b></sub>
</a>
</td></tr>
<tr>
</td>
<td align="center">
<a href="https://github.com/JOduMonT">
<img src="https://avatars.githubusercontent.com/u/5204724?v=4" width="100;" alt="JOduMonT"/>
@ -1962,10 +1969,10 @@ Thanks goes to these wonderful people ✨
</a>
</td>
<td align="center">
<a href="https://github.com/KCrawley">
<img src="https://avatars.githubusercontent.com/u/60195478?v=4" width="100;" alt="KCrawley"/>
<a href="https://github.com/thechubbypanda">
<img src="https://avatars.githubusercontent.com/u/33595996?v=4" width="100;" alt="thechubbypanda"/>
<br />
<sub><b>KCrawley</b></sub>
<sub><b>thechubbypanda</b></sub>
</a>
</td></tr>
</table>

View File

@ -156,6 +156,13 @@ DKIM is currently supported by either OpenDKIM or Rspamd:
use_esld = true;
check_pubkey = true; # you want to use this in the beginning
selector = "mail";
# The path location is searched for a DKIM key with these variables:
# - `$domain` is sourced from the MIME mail message `From` header
# - `$selector` is configured for `mail` (as a default fallback)
path = "/tmp/docker-mailserver/dkim/keys/$domain/$selector.private";
# domain specific configurations can be provided below:
domain {
example.com {
path = "/tmp/docker-mailserver/rspamd/dkim/mail.private";

View File

@ -401,7 +401,10 @@ SA_TAG2=6.31
SA_KILL=10.0
# add tag to subject if spam detected
SA_SPAM_SUBJECT='***SPAM*** '
# The value `undef` opts-out of this feature. The value shown below is the default.
# NOTE: By default spam is delivered to a junk folder, reducing the value of adding a subject prefix.
# NOTE: If not using Docker Compose, other CRI may require the single quotes removed.
#SA_SPAM_SUBJECT='***SPAM*** '
# -----------------------------------------------
# --- Fetchmail Section -------------------------

View File

@ -1,6 +0,0 @@
From: Docker Mail Server <dockermailserver@external.tld>
To: Existing Local User <user1@localhost.localdomain>
Date: Sat, 22 May 2010 07:43:25 -0400
Subject: Test Message amavis/spam.txt
This is a test mail.
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X

View File

@ -141,14 +141,12 @@ function _send_email_and_get_id() {
# Get rid of ${1} so only the arguments for swaks remain
shift 1
local QUEUE_ID
# The unique ID Postfix (and other services) use may be different in length
# on different systems (e.g. amd64 (11) vs aarch64 (10)). Hence, we use a
# range to safely capture it.
# on different systems. Hence, we use a range to safely capture it.
local QUEUE_ID_REGEX='[A-Z0-9]{9,12}'
_wait_for_empty_mail_queue_in_container
local OUTPUT=$(_send_email "${@}" --header "Message-Id: ${MID}")
_send_email "${@}" --header "Message-Id: ${MID}"
_wait_for_empty_mail_queue_in_container
# We store Postfix's queue ID first
@ -164,3 +162,12 @@ function _send_email_and_get_id() {
run echo "${ID_ENV_VAR_REF}"
assert_line --regexp "^${QUEUE_ID_REGEX}\|${MID}$"
}
# Send a spam e-mail by utilizing GTUBE.
#
# Extra arguments given to this function will be supplied by `_send_email_and_get_id` directly.
function _send_spam() {
_send_email_and_get_id MAIL_ID_SPAM "${@}" \
--from 'spam@external.tld' \
--body 'XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X'
}

View File

@ -43,20 +43,18 @@ function setup_file() {
_wait_for_service postfix
_wait_for_smtp_port_in_container
# ref: https://rspamd.com/doc/gtube_patterns.html
local GTUBE_SUFFIX='*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X'
# We will send 4 emails:
# 1. The first one should pass just fine
# 1. The first one should pass just fine
_send_email_and_get_id MAIL_ID_PASS
# 2. The second one should be rejected (GTUBE pattern)
_send_email_and_get_id MAIL_ID_REJECT --expect-rejection --body "XJS${GTUBE_SUFFIX}"
# 3. The third one should be rejected due to a virus (ClamAV EICAR pattern)
# 2. The second one should be rejected (Rspamd-specific GTUBE pattern for rejection)
_send_spam --expect-rejection
# 3. The third one should be rejected due to a virus (ClamAV EICAR pattern)
# shellcheck disable=SC2016
_send_email_and_get_id MAIL_ID_VIRUS --expect-rejection \
--body 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*'
# 4. The fourth one will receive an added header (GTUBE pattern)
_send_email_and_get_id MAIL_ID_HEADER --body "YJS${GTUBE_SUFFIX}"
# 4. The fourth one will receive an added header (Rspamd-specific GTUBE pattern for adding a spam header)
# ref: https://rspamd.com/doc/gtube_patterns.html
_send_email_and_get_id MAIL_ID_HEADER --body "YJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X"
_run_in_container cat /var/log/mail.log
assert_success
@ -122,7 +120,7 @@ function teardown_file() { _default_teardown ; }
_service_log_should_contain_string 'rspamd' 'S \(reject\)'
_service_log_should_contain_string 'rspamd' 'reject "Gtube pattern"'
_print_mail_log_for_id "${MAIL_ID_REJECT}"
_print_mail_log_for_id "${MAIL_ID_SPAM}"
assert_output --partial 'milter-reject'
assert_output --partial '5.7.1 Gtube pattern'

View File

@ -95,7 +95,7 @@ function teardown() { _default_teardown ; }
function _should_send_spam_message() {
_wait_for_smtp_port_in_container
_wait_for_tcp_port_in_container 10024 # port 10024 is for Amavis
_send_email --from 'spam@external.tld' --data 'amavis/spam.txt'
_send_spam
}
function _should_be_received_by_amavis() {

View File

@ -81,7 +81,7 @@ function setup_file() {
_send_email --to bounce-always@localhost.localdomain
_send_email --to alias2@localhost.localdomain
# Required for 'rejects spam':
_send_email --from 'spam@external.tld' --data 'amavis/spam.txt'
_send_spam
# Required for 'delivers mail to existing account':
_send_email --header 'Subject: Test Message existing-user1'