Opendkim + Postfix > dkim=neutral (bad format)

Bonjour à tous,

J’ai des problèmes dans ma configuration de postfix et opendkim.

J’ai suivi les tutos suivants :
https://www.isalo.org/wiki.debian-fr/index.php?title=Installation_sur_une_Squeeze_d%27un_serveur_mail_complet_%28Postfix_Postfixadmin_Dovecot_Mysql_Amavisd-new_Spamassassin_Clamav_Postgrey_Squirrelmail_Roundcube%29_avec_gestion_des_filtres_Imap_et_des_quotas
et
http://blog.tjitjing.com/index.php/2012/03/guide-to-install-opendkim-for-multiple-domains-with-postfix-and-debian.html

L’ensemble fonctionne correctement sauf quand le corps de mon mail comporte plusieurs lignes (crlf).
J’ai donc bêtement enlevé les \n, \r dans mon script ($message_final = preg_replace("/(\n\r|\r\n|\n|\t|\r)/", “”, $message_final)."\n":wink: afin de tout mettre sur une seul ligne.
J’ai conscience que cette pratique ne correspond pas au standard rfc (ca ne me plait pas) et de toute façon postfix me coupe ma belle ligne en deux, du coup “dkim=neutral (bad format)” :angry:

http://www.postfix.org/postconf.5.html#smtp_line_length_limit
Augmenter cette valeur serait du bricolage et j’aimerai bien collé au standard.

Je sais pas trop si c’est la faute de Opendkim, Postfix, amavis ou spamassassin mais la signature ne retourne pas d’erreur sur le serveur donc je présume que le mail est altéré après avoir été signé…? et ceci uniquement lorsque j’ai plusieurs lignes dans mon corps!?

J’ai essayé de formater mon corps avec pas mal de fonction php et d’envoyer avec mb_send_mail mais rien n’y fait.
Ca fait un bon moment que je cherche donc si vous avez une idée je suis preneur!!
Je vous épargne tout mes fichiers de config dans ce post mais je pourrai les fournir en cas de besoin.

Par avance merci et vive Debian

J’ai résolu mon problème en signant mes mails avec amavis-new qui a la fonctionnalité dkim intégrée.
Je pense que mes messages étaient altéré par amavis ou postfix après avoir été signé par opendkim…

Salut,
C’est ce que je proposais ici: isalo.org/wiki.debian-fr/Am … ew_et_DKIM
Ça fonctionne bien.

C’est ce que j’ai utilisé pour résoudre mon problème, je confirme cela fonctionne très bien
Merci pour ce tuto!

Je up le thread car je rencontre un problème similaire (“dkim=fail header.i=@mondomaine.com”), avec opendkim toujours. Que le corps du message tienne sur une seule ligne ou pas, ne change rien.

Il y a effectivement un problème de modification du message par Postfix après l’ajout de la signature DKIM.

D’après la doc officielle de postfix : postfix.org/MILTER_README.html

il y a, au paragraphe “Workarounds”, une façon de corriger le problème.

Salut,
C’est intéressant comme info.
Tu n’utilises pas amavisd-new pour signer les mails ?

Je fais mon serveur mail sans suivre de tuto particulier, du coup je n’ai pas spécialement pensé à amavis-new en fait. Si je pouvais m’en passer ça m’éviterais une usine à gaz de plus :033

Sinon, le problème est plus compliqué que ça :

  • avec les mails envoyés depuis Thunderbird et Claws-Mail : DKIM pass
  • avec les mails envoyés depuis SquirrelMail : DKIM fail!
    (pas testé avec d’autres clients web)

donc le problème viendrait de SquirrelMail :12

suite des investigations

lists.amavis.org/pipermail/amavi … 01388.html

en gros, squirrelmail écrit, dans les mails sortants, un header

Content-type: text/plain;charset=UTF-8

au lieu de

Content-type: text/plain; charset=UTF-8

Ce header est (à priori) corrigé par mon relayhost (smtp.sfr.fr) pour ne pas le nommer, ce qui casse la signature DKIM du message :038

bon, j’ai ajouté dans mon /etc/opendkim.conf la directive :

mais ça n’arrange pas le problème.

peut-être encore d’autres headers rajoutés par SquirrelMail à omettre de la signature DKIM…

Ca se précise :033

grâce à la directive

Diagnostics             true

dans /etc/opendkim.conf

Donc, toujours dans le cas d’un mail envoyé via SquirrelMail :

Si on met dans SquirrelMail, un destinataire de la forme :

fredo <fredo@gmail.com>

celui-ci est envoyé avec

"fredo" <fredo@gmail.com>

MAIS quand le mail est reçu, le champ “To:” ne contient pas les guillemets (donc signature cassée) :038

ça fait la même chose si on renseigne un header “From:”

Si j’arrivais à supprimer l’ajout de ces guillemets parasites…

Pour résumer j’ai ajouté ça à ma config opendkim.conf :

OmitHeaders content-type,content-transfer-encoding

vu que ces headers sont aussi malheureusement modifiés.

Ensuite, pour les destinataires, ne pas utiliser la forme

fredo fredo@gmail.com

mais simplement

fredo@gmail.com

Et le DKIM n’est plus cassé.