Signature DKIM et Gmail

  • Auteur de la discussion Auteur de la discussion iomgui
  • Date de début Date de début
WRInaute discret
Bonjour tout le monde,

voici mon petit problème ;)

Je suis sur le point de lancer un nouveau site, je vais essayer de la faire le plus proprement possible. Comme il y aura des mails de validation ou de notification (optin only;) j'ai suivi les conseils de google en installant une verification SPF qui fonctionne ainsi que DKIM et la je rame.

En fait je ne comprend pas bien le principe de DKIM.

J'ai généré la clé dans les app google, elle est activée et google me confirme que tout va bien de son côté.

Donc à présent j'envoi un mail avec la fonction mail de php. L'email arrive bien mais dans les SPAMS.

Voici la source de mon message :
spf=pass (google.com: domain of notifications@mondomaine.com designates 2001:41d0:2:9732:: as permitted sender) smtp.mail=notifications@mondomaine.com;
dkim=neutral (bad format) header.i=@mondomaine.com

Ce que je ne comprend pas pour DKIM
Google considére t-il que tous les emails en provenance des adresses enregistrées sont conformes ou dois-je ajouter une signature à mon mail ?

Je rame completmeent...

J'ai lu qu'il fallait une clé public (celle de google) et une privée (que j'ai générée sur mon serveur en 1024 bits). Dans le header de mon mail j'ai bien ajouté ma clé comme indiqué ci-dessous :

Code:
$subject = 'Confirmation';
$to = 'moi@gmail.com';
$from = 'notifications@mondomaine.com';
$body = 'This is a test<br /><br /><a href="http://www.mondomaine.com/ununscribe.php?e='.$to.'">Désinscription</a>';
$headers .= 'From: Mondomaine <'.$from.'>' . "\r\n";
$headers .= 'To: '.$to.'' . "\r\n";
$headers .= 'Subject: Confirmation' . "\r\n";
$headers .= 'Date: '.date('r').'' . "\r\n";
$headers .= 'Reply-To: '.$from.'' . "\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html;charset=UTF-8' . "\r\n";
$headers .= 'X-Mailer: PHP/' . phpversion(). "\r\n";
$headers .= 'Delivery-Date: ' . date("r") . "\r\n";
$headers .= 'Message-ID: <'.sha1(microtime(true)).'@mondomaine.com>' . "\r\n"; 
$headers .= 'List-Unsubscribe: <http://www.mondomaine.com/ununscribe.php?e='.$to.'>' . "\r\n";
$headers .= 'DKIM-Signature: v=DKIM1; k=rsa; p=MIGfMblablablablablabla' . "\r\n";
mail($to, $subject, $body, $headers, "-f ".$from."");

Si vous pouviez m'expliquez avec des mots simples pour mon petit cerveau ;) Si je comprends la logique je vais pouvoir faire des miracles ;)

PS. : ah oui, que ne supprime la ligne
Code:
$headers .= 'DKIM-Signature: v=DKIM1; k=rsa; p=MIGfMblablablablablabla' . "\r\n";
le DKIM n'est pas neutral mais temperror ...

Guillaume
 
WRInaute discret
La clé publique doit être inscrite comme une entrée TXT de ton domaine

La clé privé CORRESPONDANTE est ajouté au header de ton mail.

Tu peux utiliser http://dkimcore.org/tools/keys.html pour génerer la clé publique et privé.

Ensuite je te conseil d'utiliser un mailer php comme PHPmailer ou swiftmailer qui permette d'ajouter simplement la clé DKIM au header de ton mail.
 
WRInaute discret
;) Merci BotCow,

Après quelques jours de recherche j'en suis arrivé à cette conclusion et j'ai mis cela en place. Je n'ai pas encore tout compris car j'utilise phpMailer mais ce n'est pas très important. Il me reste un dernier petit soucis sur lequel je bloque. Mais mails arrivent bien sur Gmail et dans la boite de reception, ca c'est cool mais dans le header du message j'ai ceci :

Code:
Authentication-Results: mx.google.com;
       spf=pass (google.com: domain of info@xxx.com designates xxx as permitted sender) smtp.mail=info@xxx.com;
       dkim=neutral (body hash did not verify) header.i=@xxx.com;
       dkim=pass header.i=@xxx.com

Comme tu peux le voir, j'ai 2 résultats dkim. 1 neutral et 1 pass. Je crois que cela me bloque pour hotmail car je ne recois rien. Quant à yahoo je recois une fois sur 2... Je me suis dit que la clé dkim devait être envoyé 2 fois, d'ou les 2 résultats mais je ne trouve rien... C'est bizarre non ? ;)

Guillaume
 
Discussions similaires
Haut