Date de publication: le mercredi 16 mai 2007 Ă 14h05
Dernière modification: par Pascal BOYER le dimanche 15 juillet 2007 à 09h25
« Article précédent: Postfix : Analyse des logs
Avant propos
Dans cet article, je souhaite présenter certains messages d’erreur qu’induisent certaines règles.
Souvent, les commentaires qui précèdent les règles sont peu explicites. Et un exemple vaut toujours mieux qu’un long texte explicatif peu clair.
Les différents exemples présentés ici, sont issus de mon expérience d’administrateur de mon propre serveur de mail.
Cet article est donc amené à s’enrichir au fur et à mesure que je serai confronté à des difficultés induitent par la configuration de certaines règles et que j’en aurais trouvé la cause.
Cet article est scindé en deux parties: une pour les règles spécifiques à Cyrus-IMAP et l’autre pour celles qui le sont à Postfix
Pré-requis
Les messages d’erreur que je reproduis ici sont tous obtenus avec un niveau de log ainsi défini dans /etc/postfix/master.cf :
| # |
===== |
===== |
===== |
===== |
===== |
===== |
===== |
===== |
| smtp |
inet |
n |
- |
n |
- |
- |
smtpd -v |
Cyrus IMAP
1°/ La règle reject8bit: yes
Cette règle définit si oui ( no ) ou non ( yes ) l’on souhaite autoriser les accents sur les caractères DANS LES EN-TETES (pas dans le corps du mail).
Cette règle est utilisée par l’agent de transport LMTP ( lmtpd )
Cependant, même positionnée à yes , et si le client mail utilise Content-Transfer-Encoding: 8bit , il reste tout à fait possible d’utiliser les caractères accentués.
Exemple de mail refusé:
Cet exemple concerne le mail de confirmation d’inscription qu’envoie le site-forum siteduzero consacré aux langages Web.
Regardons maintenant les sources de ce mail:
To: pascal@linuxorable.fr Subject: Inscription à Forums du ZĂ©r0 ( From Forums du ZĂ©r0 ) From: "Forums du ZĂ©r0" <forums@siteduzero.com> X-Priority: 3 X-Mailer: IPB PHP Mailer
postfix/pipe[23576]: 9A4E5FB867: to=<pascal@linuxorable.fr>, relay=cyrus, delay=1, status=bounced
(data format error. Command output: pascal: Message contains invalid header )
postfix/cleanup[23574]: CB45FFB86A: message-id=<20050128101226.CB45FFB86A@euphorie.linuxorable.fr>
postfix/qmgr[23033]: CB45FFB86A: from=<>, size=4303, nrcpt=1 (queue active)
postfix/qmgr[23033]: 9A4E5FB867: removed
postfix/smtp[23580]: starting TLS engine
postfix/smtp[23580]: CB45FFB86A: to=<forums@siteduzero.com>, relay=siteduzero.com[213.186.41.156], delay=2,
status=sent (250 ok 1106907401 qp 31522)
postfix/qmgr[23033]: CB45FFB86A: removed On voit donc, première ligne, que le statut du mail est bounced (i.e: renvoyé) et que la raison de ce renvoi est: (data format error. [...] Message contains invalid header) .
Les 6 dernières lignes indiquent que le mail (dont l’identifiant est CB45FFB86A ) est renvoyé à son expéditeur.
- Exemple de mail accepté:
Regardons maintenant les sources de ce mail:
From: =?iso-8859-1?q?g=E2ch=E9=20virgini=E0?= <virginieg31@yahoo.fr> Subject: =?iso-8859-1?q?Le=20r=F4le=20l'=E9l=E8ve=20=E0=20l'envers=20i=E7i?= To: Pascal BOYER <pascal@linuxorable.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 8bit
Je pense que l’explication se passe de commentaire ! Le serveur mail de yahoo se sert de Content-Transfer-Encoding: 8bit pour coder les caractères accentués (lignes 1 et 2) qui ainsi n’apparaissent pas dans les en-têtes.
2°/ La règle munge8bit: yes
Cette règle définit si l’on souhaite ( yes ) ou non ( no ) que les caractères accentués des en-têtes des mails soient remplacés par des "X". Cette règle est utilisée par l’agent de transport LMTP ( lmtpd )
- Exemple de mail refusé:
Cet exemple concerne, encore !, le mail de confirmation d’inscription qu’envoie le site-forum siteduzero consacré aux langages Web.
Si l’on compare cette figure à la figure 1, on remarque que les accents ont bien été remplacés par des X Et il en va de même pour les accents contenus dans les en-têtes d’enveloppe du mail comme l’attestent les sources de ce mail:
Subject: Inscription à Forums du ZXr0 ( From Forums du ZXr0 ) From: "Forums du ZXr0" <forums@siteduzero.com>
Postfix
1°/ La règle strict_7bit_headers = yes
Cette règle définit si oui no ou non no l’on souhaite accepter les mails dont les en-têtes comportent du texte codé sur 8 bits, c’est à dire comportant des caractères accentués.
- Exemple de mail refusé:
Cet exemple concerne, encore et toujours !!, le mail de confirmation d’inscription qu’envoie le site-forum siteduzero consacré aux langages Web.
postfix/cleanup[24619]: 45836FB867: message-id=<20050128132521.30227.qmail@ns1.siteduzero.com>
postfix/cleanup[24619]: 45836FB867: reject:
mime-error improper use of 8-bit data in message header: Subject: Inscription àForums du Z?r0
( From Forums du Z?r0 ) from ns1.siteduzero.com[213.186.41.156];
from=<forums@siteduzero.com> to=<pascal@linuxorable.fr>
postfix/smtpd[24617]: input attribute name: status
postfix/smtpd[24617]: input attribute value: 8
postfix/smtpd[24617]: public/cleanup socket: wanted attribute: reason
postfix/smtpd[24617]: input attribute name: reason
postfix/smtpd[24617]: input attribute value: improper use of 8-bit data in message header
postfix/smtpd[24617]: public/cleanup socket: wanted attribute: (list terminator)
postfix/smtpd[24617]: input attribute name: (end)
postfix/smtpd[24617]: > ns1.siteduzero.com[213.186.41.156]: 550 Error: improper use of 8-bit data in message header
postfix/smtpd[24617]: watchdog_pat: 0x80911c8
postfix/smtpd[24617]: < ns1.siteduzero.com[213.186.41.156]: QUIT
postfix/smtpd[24617]: > ns1.siteduzero.com[213.186.41.156]: 221 Bye
postfix/smtpd[24617]: disconnect from ns1.siteduzero.com[213.186.41.156]
postfix/smtpd[24617]: master_notify: status 1
postfix/smtpd[24617]: connection closed
postfix/smtpd[24617]: watchdog_stop: 0x80911c8
cyrus/master[24373]: process 24508 exited, status 0 Il a dont fallu que je postionne la règle strict_7bit_headers à no , et que je tienne compte de ce que j’ai dit ci-dessus à propos des règles reject8bit: et munge8bit: , pour recevoir le mail !
Commentaires












