Rien de plus frustrant que vos emails transactionnels qui n’arrivent pas à destination. Pour améliorer cette délivrabilité, nous allons voir comment utiliser la signature DKIM lors de vos envois via phpmailer.
Pour créer votre paire de clefs privée / publique, vous pouvez utiliser openssl en ligne de commande sous linux. Pour cela :
openssl genrsa -out ma_clef.priv 1024 openssl rsa -in ma_clef.priv -out ma_clef.pub -pubout
Vous obtenez alors 2 fichiers :
Une fois vos 2 clefs générées, il faut diffuser votre clef publique au serveurs de messagerie. Pour cela DKIM utilise un enregistrement TXT dans la zone DNS de votre nom de domaine. Pour cela, il faut ajouter dans votre zone DNS un enregistrement du genre :
clef._domainkey TXT « k=rsa,p=CLEF_SUR_UNE_LIGNE »
La valeur CLEF_SUR_UNE_LIGNE doit être remplacé par le contenu situé entre —–BEGIN RSA PRIVATE KEY—– et —–END RSA PRIVATE KEY—– de votre fichier ma_clef.pub en enlevant les retours chariots.
Maintenant tout est prêt pour l’envoi, vos clefs sont générés, et tout est prêt pour la réception, votre clef publique est diffusée grâce à votre zone DNS (attente le délai de propagation si besoin). Il ne vous reste plus qu’à ajouter la signature à vos emails.
Si vous utilisez phpmailer dans vos application php, vous pouvez, avant d’appeler la méthode « send », demander l’ajout de la signature à votre mail. Pour cela :
<?php //ajout de la signature $mail->DKIM_identity=$mail->From; $mail->DKIM_domain=substr(strrchr($mail->From, '@'), 1); $mail->DKIM_private='CHEMIN_VERS_MA_CLEF.PRIV'; $mail->DKIM_selector='clef'._domainkey';
//envoi le mail $mail->send(); ?>
Contrôle de la signature
Pour contrôler que votre mail a bien été signé, vous pouvez lorsque que le recevez voir (dans gmail par exemple) :
Plan du site | Mentions légales | Contactez-moi | Gestion des cookies