Messages: 157

Enregistré le: 20 Nov 2009

Message le Lun Juil 06, 2015 11:06

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: Tout sélectionner
$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: Tout sélectionner
$headers .= 'DKIM-Signature: v=DKIM1; k=rsa; p=MIGfMblablablablablabla' . "\r\n";
le DKIM n'est pas neutral mais temperror ...

Guillaume
Haut
2 Réponses
Messages: 95

Enregistré le: 25 Juin 2015

Message le Mer Juil 22, 2015 11:16

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.
Haut
Messages: 157

Enregistré le: 20 Nov 2009

Message le Mer Juil 22, 2015 11:24

;) 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: Tout sélectionner
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
Haut