Exim4 en UTF8 [Résolu]

Signaler
-
Messages postés
29413
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
11 novembre 2020
-
Bonjour,

J'utilise exim4 sur Debian pour l'envoi de mails.
Lorsque je lance la commande :
echo "Là, c'est réjouissant !" | mail -s "C'est l'été" ***@***
Tous les accents du mail reçu sont remplacés par des caractères spéciaux.

Tout va mieux si j'ajoute l'header : “Content-Type: text/plain; charset=UTF-8” :
echo "Là, c'est réjouissant !" | mail -a "Content-Type: text/plain; charset=UTF-8" -s "C'est l'été" ***@***

Où est-il possible de forcer cet encodage UTF-8 pour ne pas avoir à le mettre en paramètre dans la ligne de commande ?

Merci
Fred


Configuration: Windows / Firefox 82.0

3 réponses

Messages postés
29413
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
11 novembre 2020
6 967
Hello,

Si tu configures un
alias 
(comme proposé par zipe31), ou si tu crées un
~/.mailrc
, cela impactera tous les scripts qui font appel à la commande mail. Ceci dit je ne trouve pas choquant que par défaut tout soit fait en utf8. D'ailleurs on ne devrait à mon humble avis faire plus que de l'utf8 de nos jours.

Donc si tu veux que ce réglage reste local à ton script, soit tu définis une fonction shell (disons
mail_utf8
) dans ton script shell, soit tu passes explicitement cette option à chaque fois que tu utilises la fonction
mail
dans ton script (en théorie, il doit y en avoir assez peu).
https://fr.wikibooks.org/wiki/Programmation_Bash/Fonctions

Bonne chance
Messages postés
29413
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
11 novembre 2020
6 967
Bonjour,

D'après cette discussion, le problème ne vient pas d'exim mais de ton client mail (en l'occurrence, la commande
mail
).

Si tu regardes cette discussion, tu verras comment tu peux utiliser la commande
mail
pour spécifier le charset et ainsi envoyer un e-mail encodé en UTF-8.

Bonne chance
Merci Mamiemando mais ma maîtrise de l'anglais étant un peu juste je peine à trouver comment faire en sorte que la commande 'mail' encode bien UTF-8.
J'ai cherché dans mes locales : /etc/default/locale, j'ai bien :
LANG=fr_FR.UTF-8
J'ai essayé d'ajouter LC_CTYPE=fr_FR.UTF-8 mais pas mieux.
Sur un autre serveur Buster, la commande 'mail' encode bien les accents sans que je n'ai rien fait de particulier.
Dans les 2 cas la commande "locale" renvoie bien :
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=

Je coince...
Fred
Messages postés
35767
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
14 novembre 2020
5 632 > Fred
Salut,

Et pourquoi ne pas faire un simple alias dans ton .bashrc ?

alias maila='mail -a "Content-Type: text/plain; charset=UTF-8" '  


Puis pour tes mails :
echo "Là, c'est réjouissant !" | maila -s "C'est l'été" ***@***
Oui ce serait une solution mais cela ne conviendra pas car j'ai pas mal d'applications qui font appel à la commande mail.....
Sur le serveur où je n'ai pas de problème d'encodage, c'est que j'ai postfix dessus. Du coup, c'est lui qui doit ajouter le header "Content-Type: text/plain; charset=UTF-8"
Il doit bien y avoir un endroit où l'on peut définir le charset de la commande mail....
Je cherche, merci à vous !

Fred