Filtre mail en panne

J’ai fait quelques tests il y a quelques minutes.

Sans rspamd-spam-to-junk-folder.sieve et rspamd-spam-to-junk-folder.svbin dans /etc/dovecot/global_script/les filtres de messages fonctionnent parfaitement.

Par contre, la mise à jour vers la v4.2.1 échoue sans ces fichiers dans le répertoire.

Log de mise à jour :

DEBUG   + local do_not_backup_data=
DEBUG   + [[ false == true ]]
DEBUG   + '[' '!' -e /etc/dovecot/global_script/rspamd-spam-to-junk-folder.svbin ']'
DEBUG   + ynh_print_warn 'File or folder '\''/etc/dovecot/global_script/rspamd-spam-to-junk-folder.svbin'\'' to be backed up does not exist'
DEBUG   + echo 'File or folder '\''/etc/dovecot/global_script/rspamd-spam-to-junk-folder.svbin'\'' to be b4.2.1acked up does not exist'
DEBUG   + return 1
DEBUG   + ynh_exit_properly
DEBUG   + local exit_code=1
DEBUG   + [[ backup =~ ^install$|^upgrade$|^restore$ ]]
WARNING File or folder '/etc/dovecot/global_script/rspamd-spam-to-junk-folder.svbin' to be backed up does not exist
DEBUG   + '[' 1 -eq 0 ']'
DEBUG   + trap '' EXIT
DEBUG   + set +o errexit
DEBUG   + set +o nounset
DEBUG   + sleep 0.5
DEBUG   + exit 1
DEBUG   Échec de l'exécution du script : /var/cache/yunohost/app_tmp_work_dirs/app_7aeivob0/scripts/backup
ERROR   Échec de la collecte des fichiers à sauvegarder pour rspamd.
INFO    L'opération 'Créer une archive de sauvegarde' a échoué ! Pour obtenir de l'aide, merci de partager le journal de l'opération en utilisant la commande 'yunohost log share 20261002-163626-backup_create'
DEBUG   action executed in 1.984s
EBUG   lock has been released
ERROR   Aborting the upgrade, because a safety backup could not be created (Échec de la collecte des fichiers à sauvegarder)

Une fois montée en v4.2.1 sans les fichiers cités, les filtres fonctionnent de nouveau.

et si dans rspamd-spam-to-junk-folder.sieve tu remplaces:
require ["vnd.dovecot.debug", "fileinto"];
debug_log "GLOBALSieve move spam to Junk: triggered";
par simplement : require ["fileinto"];
et refaire sievec rspamd-spam-to-junk-folder.sieve
il y a toujours un message d’erreur ?

@ewilly faut-il se placer dans un répertoire précis pour lancer la commande sievec rspamd-spam-to-junk-folder.sieve ?

Après modification du fichier : rspamd-spam-to-junk-folder.sieve

La commande me retourne :

error: script not found.
sievec(root): Fatal: failed to compile sieve script 'rspamd-spam-to-junk-folder.sieve'

oui dans /etc/dovecot/global_script/ où il y a le script rspamd-spam-to-junk-folder.sieve
(c’est pour regénérer le svbin)

Dans /etc/dovecot/global_script/ la commande ne retourne pas d’erreur

Et les filtres fonctionnent dans cette configuration.

Je me suis aidé de Gemini pour diagnostiquer, j’ai réussi à refaire fonctionner les filtres

  1. Erreur 1 — Droits de lecture sur le fichier compilé (.svbin) : Permission denied ... missing +r perm ... rspamd-spam-to-junk-folder.svbin

    L’utilisateur vmail (droits de livraison) ne peut pas lire le binaire pré-compilé du script global.

  2. Erreur 2 — Erreur de syntaxe dans le script Sieve global : unknown Sieve capability 'vnd.dovecot.debug'

    Le script /etc/dovecot/global_script/rspamd-spam-to-junk-folder.sieve contient une instruction de débug (debug_log) qui nécessite une extension Sieve non activée sur Dovecot.

J’ai modifié le fichier rspamd-spam-to-junk-folder.sieve puis recompiler avec sievec.Et également redonner les droits 644 aux fichiers dans global_scripts


#require ["vnd.dovecot.debug", "fileinto"];
#debug_log "GLOBALSieve move spam to Junk: triggered";
require ["fileinto", "mailbox"];


Et là actuellement ça fonctionne, je n’ai plus de problèmes de filtres.

Oct 02 19:24:19 example.com dovecot[123456]: lda(user@example.com)<123456><ANONYMIZED_ID>: Error: sieve: open: failed to open: open(/etc/dovecot/global_script/rspamd-spam-to-junk-folder.svbin) failed: Permission denied (euid=500(vmail) egid=8(mail) missing +r perm: /etc/dovecot/global_script/rspamd-spam-to-junk-folder.svbin, we're not in group 0(root))
Oct 02 19:24:19 example.com dovecot[123456]: lda(user@example.com)<123456><ANONYMIZED_ID>: Error: sieve: rspamd-spam-to-junk-folder: line 1: require command: unknown Sieve capability `vnd.dovecot.debug'
Oct 02 19:24:19 example.com dovecot[123456]: lda(user@example.com)<123456><ANONYMIZED_ID>: Error: sieve: rspamd-spam-to-junk-folder: line 2: unknown command 'debug_log' (only reported once at first occurrence)
Oct 02 19:24:19 example.com dovecot[123456]: lda(user@example.com)<123456><ANONYMIZED_ID>: Error: sieve: rspamd-spam-to-junk-folder: validation failed
Oct 02 19:24:19 example.com dovecot[123456]: lda(user@example.com)<123456><ANONYMIZED_ID>: Error: sieve: Failed to compile script `/etc/dovecot/global_script/rspamd-spam-to-junk-folder.sieve'

@antoine.courtois as-tu toujours de erreurs avec la version 4.2.1~ynh2 ?

Je n’ai pas pousser cette MAJ en production vu que j’ai résolu mon problème, le non tri des mails était en vrai problème pour moi et mes équipes, j’avais peur de tout casser à nouveau.

Je peux faire des tests sur une autre instance le cas échéant.

Tu passes de ça :


root@:/etc/dovecot/global_script# ls -la
total 24
drwxr-xr-x 2 vmail mail 4096 27 août   2024 .
drwxr-xr-x 6 root  root 4096 20 juin  09:43 ..
-rw-r--r-- 1 vmail mail  100 27 août   2024 dovecot.sieve
-rw-r--r-- 1 vmail mail  234 27 août   2024 dovecot.svbin
-rw-r--r-- 1 vmail mail   76 27 août   2024 rspamd.sieve
-rw-r--r-- 1 vmail mail  226 27 août   2024 rspamd.svbin

A ça :

root@:/etc/dovecot/global_script# ls -la
total 32
drwxr-x--- 2 vmail mail 4096  4 oct.  13:42 .
drwxr-xr-x 7 root  root 4096  4 oct.  13:42 ..
-rw-r----- 1 vmail mail  100 27 août   2024 dovecot.sieve
-rw-r----- 1 vmail mail  234 27 août   2024 dovecot.svbin
-rw-r----- 1 vmail mail   76 27 août   2024 rspamd.sieve
-rw-r----- 1 vmail mail  609  4 oct.  13:42 rspamd-spam-to-junk-folder.sieve
-rw-r----- 1 vmail mail  280  4 oct.  13:42 rspamd-spam-to-junk-folder.svbin
-rw-r----- 1 vmail mail  226 27 août   2024 rspamd.svbin

Les droits sont modifiés à l’installation (je suis partie d’une instance sans rspamd, il avait été installé par le passé mais désinstaller depuis) on passe de 644 à 640, je vais continuer les test mais à première vue je pense que ça ne fonctionnera pas.
A moins que le droits en lecture du groupe suffise, mais j’avais double erreur moi, l’erreur dans le fichier rspamd-spam-to-junk-folder.sieve qui elle est corrigé, et l’erreur d’accès.

Alors j’ai refait des test, avec les droits 640 ça fonctionne sur mon instance de test, les filtres fonctionne et je n’ai pas d’erreur dans le journal dovecot.
Je vais voir pour passer la MAJ en production et surveiller/faire des tests et le cas échéant revoir les droits sur les fichiers.

644 n’a pas vraiement de sens car vmail est le owner des fichiers et le group mail a aussi l’accès en lecture, il n’y a pas de raison de donné l’accès en lecture à tout autre utilisateur

Oui c’est ce que je me dis aussi. C’est pour ça qu’il faut que je revois sur le serveur de production, j’ai peut-être autre chose qui déconne.

J’ai passé la mise à jour sur le serveur de prod. Les droits sont revenu à 640, j’ai laissé et les filtres fonctionne bien.
Je n’avais pas de problème de droit finalement. (et en même temps c’est logique comme tu dis)

root@prod:/etc/dovecot/global_script# ls -la
total 28
drwxr-x--- 2 vmail mail 4096 Oct  4 14:02 .
drwxr-xr-x 7 root  root 4096 Oct  2 06:00 ..
-rw-r----- 1 vmail mail  100 Jun  1 08:18 dovecot.sieve
-rw-r----- 1 vmail mail  265 Jun  1 08:18 dovecot.svbin
-rw-r----- 1 vmail mail  609 Oct  4 14:02 rspamd-spam-to-junk-folder.sieve
-rw-r----- 1 vmail mail  280 Oct  4 14:02 rspamd-spam-to-junk-folder.svbin
-rw-r----- 1 vmail mail  257 Aug 22 14:33 rspamd.svbin

Hello, j’ai eu un peu les mêmes soucis… Du coup j’avais éditer le fichier /etc/dovecot/global_script/rspamd-spam-to-junk-folder.sieve avec simplement
require ["fileinto"];

Puis après la mise à jour en 4.2.1~ynh3 ( j’étais en 4.2.0~ynh5 ) de rspamd le fichier est toujours resté avec

require ["fileinto"];

Est-ce que je dois à nouveau éditer ce fichier ?

Pardon j’ai la réponse sur le dépôt… non c’est parfait…

je viens d’appliquer la 4.2.1~ynh4 et le fichier rspamd-spam-to-junk-folder.sieve a carrément disparu…

ça semble être voulu…

Oui il est end doublon avec dovecot.sieve du même dossier qui est mis en place par le paquet yunohost. Donc inutile.