Rewrite for Linked content tabs

Dieser Commit ist enthalten in:
Peter 2022-12-14 22:09:09 +01:00
Ursprung cc5a529823
Commit 460476a091
Es konnte kein GPG-SchlĂĽssel zu dieser Signatur gefunden werden
GPG-SchlĂĽssel-ID: A40EE5665510C9D5
26 geänderte Dateien mit 831 neuen und 247 gelöschten Zeilen

Datei anzeigen

@ -1,9 +1,16 @@
Um mailcow: dockerized mit all seinen Volumes, Images und Containern zu entfernen, tun Sie dies: Um mailcow: dockerized mit all seinen Volumes, Images und Containern zu entfernen, tun Sie dies:
=== "docker compose"
``` ``` bash
docker compose down -v --rmi all --remove-orphans docker compose down -v --rmi all --remove-orphans
``` ```
=== "docker-compose"
``` bash
docker-compose down -v --rmi all --remove-orphans
```
!!! info !!! info
- **-v** Entfernt benannte Volumes, die im Abschnitt `volumes` der Compose-Datei deklariert sind, und anonyme Volumes, die an Container angehängt sind. - **-v** Entfernt benannte Volumes, die im Abschnitt `volumes` der Compose-Datei deklariert sind, und anonyme Volumes, die an Container angehängt sind.
- **--rmi <Typ>** Images entfernen. Der Typ muss einer der folgenden sein: `all`: Entfernt alle Images, die von einem beliebigen Dienst verwendet werden. `local`: Entfernt nur Bilder, die kein benutzerdefiniertes Tag haben, das durch das Feld "image" gesetzt wurde. - **--rmi <Typ>** Images entfernen. Der Typ muss einer der folgenden sein: `all`: Entfernt alle Images, die von einem beliebigen Dienst verwendet werden. `local`: Entfernt nur Bilder, die kein benutzerdefiniertes Tag haben, das durch das Feld "image" gesetzt wurde.

Datei anzeigen

@ -1,9 +1,16 @@
To remove mailcow: dockerized with all it's volumes, images and containers do: To remove mailcow: dockerized with all it's volumes, images and containers do:
=== "docker compose"
``` ``` bash
docker compose down -v --rmi all --remove-orphans docker compose down -v --rmi all --remove-orphans
``` ```
=== "docker-compose"
``` bash
docker-compose down -v --rmi all --remove-orphans
```
!!! info !!! info
- **-v** Remove named volumes declared in the `volumes` section of the Compose file and anonymous volumes attached to containers. - **-v** Remove named volumes declared in the `volumes` section of the Compose file and anonymous volumes attached to containers.
- **--rmi <type>** Remove images. Type must be one of: `all`: Remove all images used by any service. `local`: Remove only images that don't have a custom tag set by the `image` field. - **--rmi <type>** Remove images. Type must be one of: `all`: Remove all images used by any service. `local`: Remove only images that don't have a custom tag set by the `image` field.

Datei anzeigen

@ -139,11 +139,20 @@ Sollten Sie jedoch kein IPv6-fähiges Netzwerk auf Ihrem Host haben und Sie sich
## mailcow starten ## mailcow starten
Laden Sie die Images herunter und fĂĽhren Sie die Compose-Datei aus. Der Parameter `-d` wird ihre mailcow dann im Hintergrund starten: Laden Sie die Images herunter und fĂĽhren Sie die Compose-Datei aus. Der Parameter `-d` wird ihre mailcow dann im Hintergrund starten:
``` === "docker compose"
``` bash
docker compose pull docker compose pull
docker compose up -d docker compose up -d
``` ```
=== "docker-compose"
``` bash
docker-compose pull
docker-compose up -d
```
Geschafft! Geschafft!
Sie können nun auf **https://${MAILCOW_HOSTNAME}** mit den Standard-Zugangsdaten `admin` + Passwort `moohoo` zugreifen. Sie können nun auf **https://${MAILCOW_HOSTNAME}** mit den Standard-Zugangsdaten `admin` + Passwort `moohoo` zugreifen.

Datei anzeigen

@ -139,11 +139,20 @@ If you do not have an IPv6 enabled network on your host and you don't care for a
## Start mailcow ## Start mailcow
Pull the images and run the compose file. The parameter `-d` will start mailcow: dockerized detached: Pull the images and run the compose file. The parameter `-d` will start mailcow: dockerized detached:
``` === "docker compose"
``` bash
docker compose pull docker compose pull
docker compose up -d docker compose up -d
``` ```
=== "docker-compose"
``` bash
docker-compose pull
docker-compose up -d
```
Done! Done!
You can now access **https://${MAILCOW_HOSTNAME}** with the default credentials `admin` + password `moohoo`. You can now access **https://${MAILCOW_HOSTNAME}** with the default credentials `admin` + password `moohoo`.

Datei anzeigen

@ -20,12 +20,22 @@ rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.
``` ```
**4\.** Schalten Sie mailcow ab und stoppen Sie Docker auf dem Quellrechner. **4\.** Schalten Sie mailcow ab und stoppen Sie Docker auf dem Quellrechner.
``` === "docker compose"
``` bash
cd /opt/mailcow-dockerized cd /opt/mailcow-dockerized
docker compose down docker compose down
systemctl stop docker.service systemctl stop docker.service
``` ```
=== "docker-compose"
``` bash
cd /opt/mailcow-dockerized
docker-compose down
systemctl stop docker.service
```
**Wiederholen Sie Schritt 3 mit denselben Befehlen. Dies wird viel schneller gehen als beim ersten Mal. **Wiederholen Sie Schritt 3 mit denselben Befehlen. Dies wird viel schneller gehen als beim ersten Mal.
**6\.** Wechseln Sie auf den Zielrechner und starten Sie Docker. **6\.** Wechseln Sie auf den Zielrechner und starten Sie Docker.
@ -34,13 +44,30 @@ systemctl start docker.service
``` ```
**7\.** Ziehen Sie nun die mailcow Docker-Images auf den Zielrechner. **7\.** Ziehen Sie nun die mailcow Docker-Images auf den Zielrechner.
``` === "docker compose"
``` bash
cd /opt/mailcow-dockerized cd /opt/mailcow-dockerized
docker compose pull docker compose pull
``` ```
**8\.** Starten Sie den gesamten mailcow-Stack und alles sollte fertig sein! === "docker-compose"
``` bash
cd /opt/mailcow-dockerized
docker-compose pull
``` ```
**8\.** Starten Sie den gesamten mailcow-Stack und alles sollte fertig sein!
=== "docker compose"
``` bash
docker compose up -d
```
=== "docker-compose"
``` bash
docker compose up -d docker compose up -d
``` ```

Datei anzeigen

@ -20,12 +20,22 @@ rsync -aHhP --numeric-ids --delete /var/lib/docker/volumes/ root@target-machine.
``` ```
**4\.** Shut down mailcow and stop Docker on the source machine. **4\.** Shut down mailcow and stop Docker on the source machine.
``` === "docker compose"
``` bash
cd /opt/mailcow-dockerized cd /opt/mailcow-dockerized
docker compose down docker compose down
systemctl stop docker.service systemctl stop docker.service
``` ```
=== "docker-compose"
``` bash
cd /opt/mailcow-dockerized
docker-compose down
systemctl stop docker.service
```
**5\.** Repeat step 3 with the same commands. This will be much quicker than the first time. **5\.** Repeat step 3 with the same commands. This will be much quicker than the first time.
**6\.** Switch over to the target machine and start Docker. **6\.** Switch over to the target machine and start Docker.
@ -34,13 +44,30 @@ systemctl start docker.service
``` ```
**7\.** Now pull the mailcow Docker images on the target machine. **7\.** Now pull the mailcow Docker images on the target machine.
``` === "docker compose"
``` bash
cd /opt/mailcow-dockerized cd /opt/mailcow-dockerized
docker compose pull docker compose pull
``` ```
**8\.** Start the whole mailcow stack and everything should be done! === "docker-compose"
``` bash
cd /opt/mailcow-dockerized
docker-compose pull
``` ```
**8\.** Start the whole mailcow stack and everything should be done!
=== "docker compose"
``` bash
docker compose up -d
```
=== "docker-compose"
``` bash
docker compose up -d docker compose up -d
``` ```

Datei anzeigen

@ -64,8 +64,9 @@ FĂĽhren Sie `git diff 22cd00b5e28893ef9ddef3c2b5436453cc5223ab` aus, um zu sehen
Ja. Ja.
Siehe das obige Thema, anstelle eines Diffs fĂĽhren Sie checkout aus: Siehe das obige Thema, anstelle eines Diffs fĂĽhren Sie checkout aus:
=== "docker compose"
``` ``` bash
docker compose down docker compose down
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID # Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
@ -73,6 +74,16 @@ docker compose pull
docker compose up -d docker compose up -d
``` ```
=== "docker-compose"
``` bash
docker-compose down
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker-compose pull
docker-compose up -d
```
### Hooks ### Hooks
Sie können sich in den Update-Mechanismus einklinken, indem Sie Skripte namens `pre_commit_hook.sh` und `post_commit_hook.sh` zu Ihrem mailcows-Root-Verzeichnis hinzufügen. Siehe [hier](../manual-guides/u_e-update-hooks.md) für weitere Details. Sie können sich in den Update-Mechanismus einklinken, indem Sie Skripte namens `pre_commit_hook.sh` und `post_commit_hook.sh` zu Ihrem mailcows-Root-Verzeichnis hinzufügen. Siehe [hier](../manual-guides/u_e-update-hooks.md) für weitere Details.

Datei anzeigen

@ -64,15 +64,26 @@ Run `git diff 22cd00b5e28893ef9ddef3c2b5436453cc5223ab` to see what changed.
Yes. Yes.
See the topic above, instead of a diff, you run checkout: See the topic above, instead of a diff, you run checkout:
=== "docker compose"
``` ``` bash
docker compose down docker compose down
# Replace commit ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab by your ID # Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker compose pull docker compose pull
docker compose up -d docker compose up -d
``` ```
=== "docker-compose"
``` bash
docker-compose down
# Ersetzen Sie die Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab durch Ihre ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker-compose pull
docker-compose up -d
```
### Hooks ### Hooks
You can hook into the update mechanism by adding scripts called `pre_commit_hook.sh` and `post_commit_hook.sh` to your mailcows root directory. See [this](../manual-guides/u_e-update-hooks.md) for more details. You can hook into the update mechanism by adding scripts called `pre_commit_hook.sh` and `post_commit_hook.sh` to your mailcows root directory. See [this](../manual-guides/u_e-update-hooks.md) for more details.

Datei anzeigen

@ -44,10 +44,18 @@ MaxScriptNormalize 50M
MaxZipTypeRcg 50M MaxZipTypeRcg 50M
``` ```
10. Starten Sie den ClamAV Container neu: 10. Starten Sie den ClamAV Container neu:
=== "docker compose"
``` bash ``` bash
docker compose restart clamd-mailcow docker compose restart clamd-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart clamd-mailcow
```
**Bitte beachten Sie**: **Bitte beachten Sie**:
- Sie können `ExcludePUA` und `IncludePUA` in der `clamd.conf` nicht gleichzeitig nutzen! Kommentieren Sie bitte `IncludePUA` aus, sollte es nicht auskommentiert sein. - Sie können `ExcludePUA` und `IncludePUA` in der `clamd.conf` nicht gleichzeitig nutzen! Kommentieren Sie bitte `IncludePUA` aus, sollte es nicht auskommentiert sein.
@ -65,6 +73,14 @@ DatabaseCustomURL http://sigs.interserver.net/shell.ldb
DatabaseCustomURL http://sigs.interserver.net/whitelist.fp DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
``` ```
2. Starten Sie den ClamAV Container neu: 2. Starten Sie den ClamAV Container neu:
=== "docker compose"
``` bash ``` bash
docker compose restart clamd-mailcow docker compose restart clamd-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart clamd-mailcow
```

Datei anzeigen

@ -44,10 +44,18 @@ MaxScriptNormalize 50M
MaxZipTypeRcg 50M MaxZipTypeRcg 50M
``` ```
10. Restart ClamAV container: 10. Restart ClamAV container:
=== "docker compose"
``` bash ``` bash
docker compose restart clamd-mailcow docker compose restart clamd-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart clamd-mailcow
```
Please note: Please note:
- You can't use `ExcludePUA` and `IncludePUA` in `clamd.conf` simultaneously, so please comment any `IncludePUA` if you uncommented them before. - You can't use `ExcludePUA` and `IncludePUA` in `clamd.conf` simultaneously, so please comment any `IncludePUA` if you uncommented them before.
@ -65,6 +73,14 @@ DatabaseCustomURL http://sigs.interserver.net/shell.ldb
DatabaseCustomURL http://sigs.interserver.net/whitelist.fp DatabaseCustomURL http://sigs.interserver.net/whitelist.fp
``` ```
2. Restart ClamAV container: 2. Restart ClamAV container:
=== "docker compose"
``` bash ``` bash
docker compose restart clamd-mailcow docker compose restart clamd-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart clamd-mailcow
```

Datei anzeigen

@ -1,11 +1,18 @@
## Whitelist fĂĽr bestimmte ClamAV-Signaturen ## Whitelist fĂĽr bestimmte ClamAV-Signaturen
Es kann vorkommen, dass legitime (saubere) Mails von ClamAV blockiert werden (Rspamd markiert die Mail mit `VIRUS_FOUND`). So werden beispielsweise interaktive PDF-Formularanhänge standardmäßig blockiert, da der eingebettete Javascript-Code für schädliche Zwecke verwendet werden könnte. Überprüfen Sie dies anhand der clamd-Protokolle, z.B.: Es kann vorkommen, dass legitime (saubere) Mails von ClamAV blockiert werden (Rspamd markiert die Mail mit `VIRUS_FOUND`). So werden beispielsweise interaktive PDF-Formularanhänge standardmäßig blockiert, da der eingebettete Javascript-Code für schädliche Zwecke verwendet werden könnte. Überprüfen Sie dies anhand der clamd-Protokolle, z.B.:
=== "docker compose"
``` bash ``` bash
docker compose logs clamd-mailcow | grep "FOUND" docker compose logs clamd-mailcow | grep "FOUND"
``` ```
=== "docker-compose"
``` bash
docker-compose logs clamd-mailcow | grep "FOUND"
```
Diese Zeile bestätigt, dass ein solcher identifiziert wurde: Diese Zeile bestätigt, dass ein solcher identifiziert wurde:
```text ```text
@ -19,15 +26,31 @@ echo 'PUA.Pdf.Trojan.EmbeddedJavaScript-1' >> data/conf/clamav/whitelist.ign2
``` ```
Dann starten Sie den clamd-mailcow Service Container in der mailcow UI oder mit docker compose neu: Dann starten Sie den clamd-mailcow Service Container in der mailcow UI oder mit docker compose neu:
=== "docker compose"
``` bash ``` bash
docker compose restart clamd-mailcow docker compose restart clamd-mailcow
``` ```
Bereinigen Sie zwischengespeicherte ClamAV-Ergebnisse in Redis: === "docker-compose"
``` bash
docker-compose restart clamd-mailcow
``` ```
# docker compose exec redis-mailcow /bin/sh
Bereinigen Sie zwischengespeicherte ClamAV-Ergebnisse in Redis:
=== "docker compose"
``` bash
docker compose exec redis-mailcow /bin/sh
/data # redis-cli KEYS rs_cl* | xargs redis-cli DEL
/data # exit
```
=== "docker-compose"
``` bash
docker-compose exec redis-mailcow /bin/sh
/data # redis-cli KEYS rs_cl* | xargs redis-cli DEL /data # redis-cli KEYS rs_cl* | xargs redis-cli DEL
/data # exit /data # exit
``` ```

Datei anzeigen

@ -1,11 +1,18 @@
## Whitelist specific ClamAV signatures ## Whitelist specific ClamAV signatures
You may find that legitimate (clean) mail is being blocked by ClamAV (Rspamd will flag the mail with `VIRUS_FOUND`). For instance, interactive PDF form attachments are blocked by default because the embedded Javascript code may be used for nefarious purposes. Confirm by looking at the clamd logs, e.g.: You may find that legitimate (clean) mail is being blocked by ClamAV (Rspamd will flag the mail with `VIRUS_FOUND`). For instance, interactive PDF form attachments are blocked by default because the embedded Javascript code may be used for nefarious purposes. Confirm by looking at the clamd logs, e.g.:
=== "docker compose"
``` bash ``` bash
docker compose logs clamd-mailcow | grep "FOUND" docker compose logs clamd-mailcow | grep "FOUND"
``` ```
=== "docker-compose"
``` bash
docker-compose logs clamd-mailcow | grep "FOUND"
```
This line confirms that such was identified: This line confirms that such was identified:
```text ```text
@ -19,15 +26,31 @@ echo 'PUA.Pdf.Trojan.EmbeddedJavaScript-1' >> data/conf/clamav/whitelist.ign2
``` ```
Then restart the clamd-mailcow service container in the mailcow UI or using docker compose: Then restart the clamd-mailcow service container in the mailcow UI or using docker compose:
=== "docker compose"
``` bash ``` bash
docker compose restart clamd-mailcow docker compose restart clamd-mailcow
``` ```
Cleanup cached ClamAV results in Redis: === "docker-compose"
``` bash
docker-compose restart clamd-mailcow
``` ```
# docker compose exec redis-mailcow /bin/sh
Cleanup cached ClamAV results in Redis:
=== "docker compose"
``` bash
docker compose exec redis-mailcow /bin/sh
/data # redis-cli KEYS rs_cl* | xargs redis-cli DEL
/data # exit
```
=== "docker-compose"
``` bash
docker-compose exec redis-mailcow /bin/sh
/data # redis-cli KEYS rs_cl* | xargs redis-cli DEL /data # redis-cli KEYS rs_cl* | xargs redis-cli DEL
/data # exit /data # exit
``` ```

Datei anzeigen

@ -20,6 +20,14 @@ $service-mailcow:
Abschliessend müssen die geänderten Container automatisch neu erstellt werden: Abschliessend müssen die geänderten Container automatisch neu erstellt werden:
``` === "docker compose"
``` bash
docker compose up -d docker compose up -d
``` ```
=== "docker-compose"
``` bash
docker-compose up -d
```

Datei anzeigen

@ -20,7 +20,14 @@ $service-mailcow:
``` ```
Now auto-recreate modified containers: Now auto-recreate modified containers:
=== "docker compose"
``` ``` bash
docker compose up -d docker compose up -d
``` ```
=== "docker-compose"
``` bash
docker-compose up -d
```

Datei anzeigen

@ -110,9 +110,16 @@ Dieser Dateiname muss keine ".conf"-Erweiterung haben, sondern folgt dem Muster
Wenn PHP in eine benutzerdefinierte Site eingebunden werden soll, verwenden Sie bitte den PHP-FPM-Listener auf phpfpm:9002 oder erstellen Sie einen neuen Listener in `data/conf/phpfpm/php-fpm.d/pools.conf`. Wenn PHP in eine benutzerdefinierte Site eingebunden werden soll, verwenden Sie bitte den PHP-FPM-Listener auf phpfpm:9002 oder erstellen Sie einen neuen Listener in `data/conf/phpfpm/php-fpm.d/pools.conf`.
Starten Sie Nginx neu (und PHP-FPM, falls ein neuer Listener erstellt wurde): Starten Sie Nginx neu (und PHP-FPM, falls ein neuer Listener erstellt wurde):
=== "docker compose"
``` ``` bash
docker compose restart nginx-mailcow docker compose restart nginx-mailcow
docker compose restart php-fpm-mailcow docker compose restart php-fpm-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart nginx-mailcow
docker-compose restart php-fpm-mailcow
```

Datei anzeigen

@ -111,8 +111,16 @@ This filename does not need to have a ".conf" extension but follows the pattern
If PHP is to be included in a custom site, please use the PHP-FPM listener on phpfpm:9002 or create a new listener in `data/conf/phpfpm/php-fpm.d/pools.conf`. If PHP is to be included in a custom site, please use the PHP-FPM listener on phpfpm:9002 or create a new listener in `data/conf/phpfpm/php-fpm.d/pools.conf`.
Restart Nginx (and PHP-FPM, if a new listener was created): Restart Nginx (and PHP-FPM, if a new listener was created):
=== "docker compose"
``` ``` bash
docker compose restart nginx-mailcow docker compose restart nginx-mailcow
docker compose restart php-fpm-mailcow docker compose restart php-fpm-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart nginx-mailcow
docker-compose restart php-fpm-mailcow
```

Datei anzeigen

@ -1,7 +1,14 @@
Ă–ffnen Sie `data/conf/postfix/extra.cf` und setzen Sie das `message_size_limit` entsprechend in Bytes. Siehe `main.cf` fĂĽr den Standardwert. Ă–ffnen Sie `data/conf/postfix/extra.cf` und setzen Sie das `message_size_limit` entsprechend in Bytes. Siehe `main.cf` fĂĽr den Standardwert.
Starten Sie Postfix neu: Starten Sie Postfix neu:
=== "docker compose"
``` ``` bash
docker compose restart postfix-mailcow docker compose restart postfix-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart postfix-mailcow
```

Datei anzeigen

@ -1,7 +1,14 @@
Open `data/conf/postfix/extra.cf` and set the `message_size_limit` accordingly in bytes. See `main.cf` for the default value. Open `data/conf/postfix/extra.cf` and set the `message_size_limit` accordingly in bytes. See `main.cf` for the default value.
Restart Postfix: Restart Postfix:
=== "docker compose"
``` ``` bash
docker compose restart postfix-mailcow docker compose restart postfix-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart postfix-mailcow
```

Datei anzeigen

@ -19,9 +19,16 @@ smtpd_sender_restrictions = check_sasl_access hash:/opt/postfix/conf/check_sasl_
``` ```
Postmap auf check_sasl_access ausfĂĽhren: Postmap auf check_sasl_access ausfĂĽhren:
=== "docker compose"
``` ``` bash
docker compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access docker compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
``` ```
=== "docker-compose"
``` bash
docker-compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
```
Starten Sie den Postfix-Container neu. Starten Sie den Postfix-Container neu.

Datei anzeigen

@ -19,9 +19,16 @@ smtpd_sender_restrictions = check_sasl_access hash:/opt/postfix/conf/check_sasl_
``` ```
Run postmap on check_sasl_access: Run postmap on check_sasl_access:
=== "docker compose"
``` ``` bash
docker compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access docker compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
``` ```
=== "docker-compose"
``` bash
docker-compose exec postfix-mailcow postmap /opt/postfix/conf/check_sasl_access
```
Restart the Postfix container. Restart the Postfix container.

Datei anzeigen

@ -6,6 +6,14 @@ Syslog-ng wurde so konfiguriert, dass es diese Warnungen ausblendet, während Po
Starten Sie `postfix-mailcow` neu, um Ihre Ă„nderungen zu ĂĽbernehmen: Starten Sie `postfix-mailcow` neu, um Ihre Ă„nderungen zu ĂĽbernehmen:
``` === "docker compose"
``` bash
docker compose restart postfix-mailcow docker compose restart postfix-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart postfix-mailcow
```

Datei anzeigen

@ -6,6 +6,14 @@ Syslog-ng was configured to hide those warnings while Postfix is running, to not
Restart `postfix-mailcow` to apply your changes: Restart `postfix-mailcow` to apply your changes:
``` === "docker compose"
``` bash
docker compose restart postfix-mailcow docker compose restart postfix-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart postfix-mailcow
```

Datei anzeigen

@ -3,11 +3,18 @@ Redis wird als Key-Value-Speicher fĂĽr die Einstellungen und Daten von rspamd un
## Client ## Client
Um sich mit dem redis cli zu verbinden, fĂĽhren Sie aus: Um sich mit dem redis cli zu verbinden, fĂĽhren Sie aus:
=== "docker compose"
``` ``` bash
docker compose exec redis-mailcow redis-cli docker compose exec redis-mailcow redis-cli
``` ```
=== "docker-compose"
``` bash
docker-compose exec redis-mailcow redis-cli
```
### Fehlersuche ### Fehlersuche
Hier sind einige nĂĽtzliche Befehle fĂĽr den redis-cli zur Fehlersuche: Hier sind einige nĂĽtzliche Befehle fĂĽr den redis-cli zur Fehlersuche:
@ -15,8 +22,9 @@ Hier sind einige nĂĽtzliche Befehle fĂĽr den redis-cli zur Fehlersuche:
##### MONITOR ##### MONITOR
Ăśberwacht alle vom Server empfangenen Anfragen in Echtzeit: Ăśberwacht alle vom Server empfangenen Anfragen in Echtzeit:
=== "docker compose"
``` ``` bash
#docker compose exec redis-mailcow redis-cli #docker compose exec redis-mailcow redis-cli
127.0.0.1:6379> monitor 127.0.0.1:6379> monitor
OK OK
@ -25,6 +33,17 @@ OK
[...] [...]
``` ```
=== "docker-compose"
``` bash
#docker-compose exec redis-mailcow redis-cli
127.0.0.1:6379> monitor
OK
1494077286.401963 [0 172.22.1.253:41228] "SMEMBERS" "BAYES_SPAM_keys"
1494077288.292970 [0 172.22.1.253:41229] "SMEMBERS" "BAYES_SPAM_keys"
[...]
```
##### SCHLĂśSSEL (Keys) ##### SCHLĂśSSEL (Keys)
Ermittelt alle SchlĂĽssel, die dem Muster entsprechen: Ermittelt alle SchlĂĽssel, die dem Muster entsprechen:

Datei anzeigen

@ -3,11 +3,18 @@ Redis is used as a key-value store for rspamd's and (some of) mailcow's settings
## Client ## Client
To connect to the redis cli execute: To connect to the redis cli execute:
=== "docker compose"
``` ``` bash
docker compose exec redis-mailcow redis-cli docker compose exec redis-mailcow redis-cli
``` ```
=== "docker-compose"
``` bash
docker-compose exec redis-mailcow redis-cli
```
### Debugging ### Debugging
Here are some useful commands for the redis-cli for debugging: Here are some useful commands for the redis-cli for debugging:
@ -15,8 +22,9 @@ Here are some useful commands for the redis-cli for debugging:
##### MONITOR ##### MONITOR
Listens for all requests received by the server in real time: Listens for all requests received by the server in real time:
=== "docker compose"
``` ``` bash
#docker compose exec redis-mailcow redis-cli #docker compose exec redis-mailcow redis-cli
127.0.0.1:6379> monitor 127.0.0.1:6379> monitor
OK OK
@ -25,6 +33,17 @@ OK
[...] [...]
``` ```
=== "docker-compose"
``` bash
#docker-compose exec redis-mailcow redis-cli
127.0.0.1:6379> monitor
OK
1494077286.401963 [0 172.22.1.253:41228] "SMEMBERS" "BAYES_SPAM_keys"
1494077288.292970 [0 172.22.1.253:41229] "SMEMBERS" "BAYES_SPAM_keys"
[...]
```
##### KEYS ##### KEYS
Get all keys matching your pattern: Get all keys matching your pattern:

Datei anzeigen

@ -16,6 +16,7 @@ Sie können auch die Web-UI von Rspamd verwenden, um Ham und/oder Spam zu lernen
### Spam oder Ham aus bestehendem Verzeichnis lernen ### Spam oder Ham aus bestehendem Verzeichnis lernen
Sie können einen Einzeiler verwenden, um Mails im Klartextformat (unkomprimiert) zu lernen: Sie können einen Einzeiler verwenden, um Mails im Klartextformat (unkomprimiert) zu lernen:
=== "docker compose"
``` bash ``` bash
# Ham # Ham
@ -24,6 +25,15 @@ for file in /my/folder/cur/*; do docker exec -i $(docker compose ps -q rspamd-ma
for file in /my/folder/.Junk/cur/*; do docker exec -i $(docker compose ps -q rspamd-mailcow) rspamc learn_spam < $file; done for file in /my/folder/.Junk/cur/*; do docker exec -i $(docker compose ps -q rspamd-mailcow) rspamc learn_spam < $file; done
``` ```
=== "docker-compose"
``` bash
# Ham
for file in /my/folder/cur/*; do docker exec -i $(docker-compose ps -q rspamd-mailcow) rspamc learn_ham < $file; done
# Spam
for file in /my/folder/.Junk/cur/*; do docker exec -i $(docker-compose ps -q rspamd-mailcow) rspamc learn_spam < $file; done
```
Erwägen Sie, einen lokalen Ordner als neues Volume an `rspamd-mailcow` in `docker-compose.yml` anzuhängen und die gegebenen Dateien innerhalb des Containers zu lernen. Dies kann als Workaround verwendet werden, um komprimierte Daten mit zcat zu parsen. Beispiel: Erwägen Sie, einen lokalen Ordner als neues Volume an `rspamd-mailcow` in `docker-compose.yml` anzuhängen und die gegebenen Dateien innerhalb des Containers zu lernen. Dies kann als Workaround verwendet werden, um komprimierte Daten mit zcat zu parsen. Beispiel:
``bash ``bash
@ -42,19 +52,35 @@ cp /var/lib/docker/volumes/mailcowdockerized_redis-vol-1/_data/dump.rdb /root/
``` ```
**Bayes-Daten zurĂĽcksetzen** **Bayes-Daten zurĂĽcksetzen**
=== "docker compose"
``` bash ``` bash
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern BAYES_* | xargs redis-cli del' docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern BAYES_* | xargs redis-cli del'
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern RS* | xargs redis-cli del' docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern RS* | xargs redis-cli del'
``` ```
=== "docker-compose"
``` bash
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern BAYES_* | xargs redis-cli del'
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern RS* | xargs redis-cli del'
```
**Neurale Daten zurĂĽcksetzen** **Neurale Daten zurĂĽcksetzen**
=== "docker compose"
``` bash ``` bash
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern rn_* | xargs redis-cli del' docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern rn_* | xargs redis-cli del'
``` ```
=== "docker-compose"
``` bash
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern rn_* | xargs redis-cli del'
```
**Fuzzy-Daten zurĂĽcksetzen** **Fuzzy-Daten zurĂĽcksetzen**
=== "docker compose"
``` bash ``` bash
# Wir mĂĽssen zuerst das redis-cli eingeben: # Wir mĂĽssen zuerst das redis-cli eingeben:
@ -63,6 +89,15 @@ docker compose exec redis-mailcow redis-cli
127.0.0.1:6379> EVAL "for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end" 0 fuzzy* 127.0.0.1:6379> EVAL "for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end" 0 fuzzy*
``` ```
=== "docker-compose"
``` bash
# Wir mĂĽssen zuerst das redis-cli eingeben:
docker-compose exec redis-mailcow redis-cli
# In redis-cli:
127.0.0.1:6379> EVAL "for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end" 0 fuzzy*
```
**Info** **Info**
Wenn redis-cli sich beschwert ĂĽber... Wenn redis-cli sich beschwert ĂĽber...
@ -74,12 +109,20 @@ Wenn redis-cli sich beschwert ĂĽber...
...das Schlüsselmuster nicht gefunden wurde und somit keine Daten zum Löschen vorhanden sind - ist es in Ordnung. ...das Schlüsselmuster nicht gefunden wurde und somit keine Daten zum Löschen vorhanden sind - ist es in Ordnung.
## CLI-Werkzeuge ## CLI-Werkzeuge
=== "docker compose"
``bash ``` bash
docker compose exec rspamd-mailcow rspamc --help docker compose exec rspamd-mailcow rspamc --help
docker compose exec rspamd-mailcow rspamadm --help docker compose exec rspamd-mailcow rspamadm --help
``` ```
=== "docker-compose"
``` bash
docker-compose exec rspamd-mailcow rspamc --help
docker-compose exec rspamd-mailcow rspamadm --help
```
## Greylisting deaktivieren ## Greylisting deaktivieren
Nur Nachrichten mit einer höheren Punktzahl werden als Greylisting betrachtet (soft rejected). Es ist schlechte Praxis, Greylisting zu deaktivieren. Nur Nachrichten mit einer höheren Punktzahl werden als Greylisting betrachtet (soft rejected). Es ist schlechte Praxis, Greylisting zu deaktivieren.
@ -94,7 +137,18 @@ FĂĽgen Sie die Zeile hinzu:
enabled = false; enabled = false;
``` ```
Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu: `docker compose restart rspamd-mailcow` Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu:
=== "docker compose"
``` bash
docker compose restart rspamd-mailcow
```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
## Spamfilter-Schwellenwerte (global) ## Spamfilter-Schwellenwerte (global)
@ -106,17 +160,38 @@ add_header = 8;
greylist = 7; greylist = 7;
``` ```
Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu: `docker compose restart rspamd-mailcow` Speichern Sie die Datei und starten Sie "rspamd-mailcow" neu:
=== "docker compose"
``` bash
docker compose restart rspamd-mailcow
```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
Bestehende Einstellungen der Benutzer werden nicht ĂĽberschrieben! Bestehende Einstellungen der Benutzer werden nicht ĂĽberschrieben!
Um benutzerdefinierte Schwellenwerte zurĂĽckzusetzen, fĂĽhren Sie aus: Um benutzerdefinierte Schwellenwerte zurĂĽckzusetzen, fĂĽhren Sie aus:
=== "docker compose"
``` ``` bash
source mailcow.conf source mailcow.conf
docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';" docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
# oder: # oder:
# docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';" docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';"
```
=== "docker-compose"
``` bash
source mailcow.conf
docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
# oder:
docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';"
``` ```
## Benutzerdefinierte Ablehnungsnachrichten ## Benutzerdefinierte Ablehnungsnachrichten
@ -127,7 +202,18 @@ Die Standard-Spam-Reject-Meldung kann durch HinzufĂĽgen einer neuen Datei `data/
reject_message = "Meine eigene Ablehnungsnachricht"; reject_message = "Meine eigene Ablehnungsnachricht";
``` ```
Speichern Sie die Datei und starten Sie Rspamd neu: `docker compose restart rspamd-mailcow`. Speichern Sie die Datei und starten Sie Rspamd neu:
=== "docker compose"
``` bash
docker compose restart rspamd-mailcow
```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
Waehrend das oben genannte fuer abgelehnte Mails mit einem hohen Spam-Score funktioniert, ignorieren Prefilter-Aktionen diese Einstellung. FĂĽr diese Karten muss das Multimap-Modul in Rspamd angepasst werden: Waehrend das oben genannte fuer abgelehnte Mails mit einem hohen Spam-Score funktioniert, ignorieren Prefilter-Aktionen diese Einstellung. FĂĽr diese Karten muss das Multimap-Modul in Rspamd angepasst werden:
@ -146,7 +232,18 @@ GLOBAL_RCPT_BL {
} }
``` ```
3. Speichern Sie die Datei und starten Sie Rspamd neu: `docker compose restart rspamd-mailcow`. 3. Speichern Sie die Datei und starten Sie Rspamd neu:
=== "docker compose"
``` bash
docker compose restart rspamd-mailcow
```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
## Verwerfen statt zurĂĽckweisen ## Verwerfen statt zurĂĽckweisen
@ -157,38 +254,72 @@ discard_on_reject = true;
``` ```
Starten Sie Rspamd neu: Starten Sie Rspamd neu:
=== "docker compose"
``` bash ``` bash
docker compose restart rspamd-mailcow docker compose restart rspamd-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
## Lösche alle Ratelimit-Schlüssel ## Lösche alle Ratelimit-Schlüssel
Wenn Sie das UI nicht verwenden wollen und stattdessen alle Schlüssel in der Redis-Datenbank löschen wollen, können Sie redis-cli für diese Aufgabe verwenden: Wenn Sie das UI nicht verwenden wollen und stattdessen alle Schlüssel in der Redis-Datenbank löschen wollen, können Sie redis-cli für diese Aufgabe verwenden:
=== "docker compose"
``` ``` bash
docker compose exec redis-mailcow sh docker compose exec redis-mailcow sh
# Unlink (verfügbar in Redis >=4.) löscht im Hintergrund # Unlink (verfügbar in Redis >=4.) löscht im Hintergrund
redis-cli --scan --pattern RL* | xargs redis-cli unlink redis-cli --scan --pattern RL* | xargs redis-cli unlink
``` ```
=== "docker-compose"
``` bash
docker-compose exec redis-mailcow sh
# Unlink (verfügbar in Redis >=4.) löscht im Hintergrund
redis-cli --scan --pattern RL* | xargs redis-cli unlink
```
Starten Sie Rspamd neu: Starten Sie Rspamd neu:
=== "docker compose"
``` bash ``` bash
docker compose restart rspamd-mailcow docker compose restart rspamd-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
## Erneutes Senden von Quarantäne-Benachrichtigungen auslösen ## Erneutes Senden von Quarantäne-Benachrichtigungen auslösen
Sollte nur zur Fehlersuche verwendet werden! Sollte nur zur Fehlersuche verwendet werden!
=== "docker compose"
``` ``` bash
docker compose exec dovecot-mailcow bash docker compose exec dovecot-mailcow bash
mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;" mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;"
redis-cli -h redis DEL Q_LAST_NOTIFIED redis-cli -h redis DEL Q_LAST_NOTIFIED
quarantine_notify.py quarantine_notify.py
``` ```
=== "docker-compose"
``` bash
docker-compose exec dovecot-mailcow bash
mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;"
redis-cli -h redis DEL Q_LAST_NOTIFIED
quarantine_notify.py
```
## Speicherung der Historie erhöhen ## Speicherung der Historie erhöhen
Standardmäßig speichert Rspamd 1000 Elemente in der Historie. Standardmäßig speichert Rspamd 1000 Elemente in der Historie.
@ -203,7 +334,15 @@ Bearbeiten Sie `data/conf/rspamd/local.d/history_redis.conf`:
nrows = 1000; # Ă„ndern Sie diesen Wert nrows = 1000; # Ă„ndern Sie diesen Wert
``` ```
Starten Sie anschlieĂźend Rspamd neu: `docker compose restart rspamd-mailcow` Starten Sie anschlieĂźend Rspamd neu:
=== "docker compose"
``` bash
docker compose restart rspamd-mailcow
```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```

Datei anzeigen

@ -16,6 +16,7 @@ You can also use Rspamd's web UI to learn ham and / or spam or to adjust certain
### Learn Spam or Ham from existing directory ### Learn Spam or Ham from existing directory
You can use a one-liner to learn mail in plain-text (uncompressed) format: You can use a one-liner to learn mail in plain-text (uncompressed) format:
=== "docker compose"
``` bash ``` bash
# Ham # Ham
@ -24,6 +25,15 @@ for file in /my/folder/cur/*; do docker exec -i $(docker compose ps -q rspamd-ma
for file in /my/folder/.Junk/cur/*; do docker exec -i $(docker compose ps -q rspamd-mailcow) rspamc learn_spam < $file; done for file in /my/folder/.Junk/cur/*; do docker exec -i $(docker compose ps -q rspamd-mailcow) rspamc learn_spam < $file; done
``` ```
=== "docker-compose"
``` bash
# Ham
for file in /my/folder/cur/*; do docker exec -i $(docker-compose ps -q rspamd-mailcow) rspamc learn_ham < $file; done
# Spam
for file in /my/folder/.Junk/cur/*; do docker exec -i $(docker-compose ps -q rspamd-mailcow) rspamc learn_spam < $file; done
```
Consider attaching a local folder as new volume to `rspamd-mailcow` in `docker-compose.yml` and learn given files inside the container. This can be used as workaround to parse compressed data with zcat. Example: Consider attaching a local folder as new volume to `rspamd-mailcow` in `docker-compose.yml` and learn given files inside the container. This can be used as workaround to parse compressed data with zcat. Example:
```bash ```bash
@ -42,19 +52,35 @@ cp /var/lib/docker/volumes/mailcowdockerized_redis-vol-1/_data/dump.rdb /root/
``` ```
**Reset Bayes data** **Reset Bayes data**
=== "docker compose"
``` bash ``` bash
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern BAYES_* | xargs redis-cli del' docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern BAYES_* | xargs redis-cli del'
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern RS* | xargs redis-cli del' docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern RS* | xargs redis-cli del'
``` ```
=== "docker-compose"
``` bash
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern BAYES_* | xargs redis-cli del'
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern RS* | xargs redis-cli del'
```
**Reset Neural data** **Reset Neural data**
=== "docker compose"
``` bash ``` bash
docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern rn_* | xargs redis-cli del' docker compose exec redis-mailcow sh -c 'redis-cli --scan --pattern rn_* | xargs redis-cli del'
``` ```
=== "docker-compose"
``` bash
docker-compose exec redis-mailcow sh -c 'redis-cli --scan --pattern rn_* | xargs redis-cli del'
```
**Reset Fuzzy data** **Reset Fuzzy data**
=== "docker compose"
``` bash ``` bash
# We need to enter the redis-cli first: # We need to enter the redis-cli first:
@ -63,6 +89,15 @@ docker compose exec redis-mailcow redis-cli
127.0.0.1:6379> EVAL "for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end" 0 fuzzy* 127.0.0.1:6379> EVAL "for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end" 0 fuzzy*
``` ```
=== "docker-compose"
``` bash
# We need to enter the redis-cli first:
docker-compose exec redis-mailcow redis-cli
# In redis-cli:
127.0.0.1:6379> EVAL "for i, name in ipairs(redis.call('KEYS', ARGV[1])) do redis.call('DEL', name); end" 0 fuzzy*
```
**Info** **Info**
If redis-cli complains about... If redis-cli complains about...
@ -75,12 +110,20 @@ If redis-cli complains about...
## CLI tools ## CLI tools
=== "docker compose"
``` bash ``` bash
docker compose exec rspamd-mailcow rspamc --help docker compose exec rspamd-mailcow rspamc --help
docker compose exec rspamd-mailcow rspamadm --help docker compose exec rspamd-mailcow rspamadm --help
``` ```
=== "docker-compose"
``` bash
docker-compose exec rspamd-mailcow rspamc --help
docker-compose exec rspamd-mailcow rspamadm --help
```
## Disable Greylisting ## Disable Greylisting
Only messages with a higher score will be considered to be greylisted (soft rejected). It is bad practice to disable greylisting. Only messages with a higher score will be considered to be greylisted (soft rejected). It is bad practice to disable greylisting.
@ -95,7 +138,18 @@ Add the line:
enabled = false; enabled = false;
``` ```
Save the file and restart "rspamd-mailcow": `docker compose restart rspamd-mailcow` Save the file and restart "rspamd-mailcow":
=== "docker compose"
``` bash
docker compose restart rspamd-mailcow
```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
## Spam filter thresholds (global) ## Spam filter thresholds (global)
@ -107,12 +161,39 @@ add_header = 8;
greylist = 7; greylist = 7;
``` ```
Save the file and restart "rspamd-mailcow": `docker compose restart rspamd-mailcow` Save the file and restart "rspamd-mailcow":
=== "docker compose"
``` bash
docker compose restart rspamd-mailcow
```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
Existing settings of users will not be overwritten! Existing settings of users will not be overwritten!
To reset custom defined thresholds, run: To reset custom defined thresholds, run:
=== "docker compose"
``` bash
source mailcow.conf
docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
# or:
docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';"
```
=== "docker-compose"
``` bash
source mailcow.conf
docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
# or:
docker-compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel' and object = 'only-this-mailbox@example.org';"
```
``` ```
source mailcow.conf source mailcow.conf
docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';" docker compose exec mysql-mailcow mysql -umailcow -p$DBPASS mailcow -e "delete from filterconf where option = 'highspamlevel' or option = 'lowspamlevel';"
@ -128,7 +209,18 @@ The default spam reject message can be changed by adding a new file `data/conf/r
reject_message = "My custom reject message"; reject_message = "My custom reject message";
``` ```
Save the file and restart Rspamd: `docker compose restart rspamd-mailcow`. Save the file and restart Rspamd:
=== "docker compose"
``` bash
docker compose restart rspamd-mailcow
```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
While the above works for rejected mails with a high spam score, prefilter reject actions will ignore this setting. For these maps, the multimap module in Rspamd needs to be adjusted: While the above works for rejected mails with a high spam score, prefilter reject actions will ignore this setting. For these maps, the multimap module in Rspamd needs to be adjusted:
@ -147,7 +239,18 @@ GLOBAL_RCPT_BL {
} }
``` ```
3. Save the file and restart Rspamd: `docker compose restart rspamd-mailcow`. 3. Save the file and restart Rspamd:
=== "docker compose"
``` bash
docker compose restart rspamd-mailcow
```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
## Discard instead of reject ## Discard instead of reject
@ -158,38 +261,71 @@ discard_on_reject = true;
``` ```
Restart Rspamd: Restart Rspamd:
=== "docker compose"
``` bash ``` bash
docker compose restart rspamd-mailcow docker compose restart rspamd-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
## Wipe all ratelimit keys ## Wipe all ratelimit keys
If you don't want to use the UI and instead wipe all keys in the Redis database, you can use redis-cli for that task: If you don't want to use the UI and instead wipe all keys in the Redis database, you can use redis-cli for that task:
=== "docker compose"
``` ``` bash
docker compose exec redis-mailcow sh docker compose exec redis-mailcow sh
# Unlink (available in Redis >=4.) will delete in the backgronud # Unlink (available in Redis >=4.) will delete in the backgronud
redis-cli --scan --pattern RL* | xargs redis-cli unlink redis-cli --scan --pattern RL* | xargs redis-cli unlink
``` ```
=== "docker-compose"
``` bash
docker-compose exec redis-mailcow sh
# Unlink (available in Redis >=4.) will delete in the backgronud
redis-cli --scan --pattern RL* | xargs redis-cli unlink
```
Restart Rspamd: Restart Rspamd:
=== "docker compose"
``` bash ``` bash
docker compose restart rspamd-mailcow docker compose restart rspamd-mailcow
``` ```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```
## Trigger a resend of quarantine notifications ## Trigger a resend of quarantine notifications
Should be used for debugging only! Should be used for debugging only!
=== "docker compose"
``` ``` bash
docker compose exec dovecot-mailcow bash docker compose exec dovecot-mailcow bash
mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;" mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;"
redis-cli -h redis DEL Q_LAST_NOTIFIED redis-cli -h redis DEL Q_LAST_NOTIFIED
quarantine_notify.py quarantine_notify.py
``` ```
=== "docker-compose"
``` bash
docker-compose exec dovecot-mailcow bash
mysql -umailcow -p$DBPASS mailcow -e "update quarantine set notified = 0;"
redis-cli -h redis DEL Q_LAST_NOTIFIED
quarantine_notify.py
```
## Increase history retention ## Increase history retention
By default Rspamd keeps 1000 elements in the history. By default Rspamd keeps 1000 elements in the history.
@ -204,4 +340,15 @@ Edit `data/conf/rspamd/local.d/history_redis.conf`:
nrows = 1000; # change this value nrows = 1000; # change this value
``` ```
Restart Rspamd afterwards: `docker compose restart rspamd-mailcow` Restart Rspamd afterwards:
=== "docker compose"
``` bash
docker compose restart rspamd-mailcow
```
=== "docker-compose"
``` bash
docker-compose restart rspamd-mailcow
```