La documentation officielle est ici: DKIM Core Technical Specification
Il vous tout d'abord générer un bi-clé RSA 1024 bits, par exemple avec openssl:
openssl genrsa -out example.com.priv 1024
openssl rsa -in example.com.priv -pubout > example.com.pub
Il faut choisir un "selector" qui est un identifiant de clef: il doit faire moins de 64 caractères et contenir uniquement des lettres et des chiffres. Il peut éventuellement contenir une deuxième chaine de la même forme séparée d'un point. Exemples: www
, sept15.www
, contact
...
Il faut publier ensuite la clé publique dans le DNS en créant un enregistrement de type texte (TXT
) de la forme <SELECTOR>._domainkey.example.com
et lui affecter la valeur suivante:
v=DKIM1;t=s;n=core;p=<CLEF PUBLIQUE>
En remplaçant évidemment <CLEF PUBLIQUE>
par celle générée, c'est-à-dire le contenu du fichier example.com.pub sans espaces ni retour à la ligne ni --- BEGIN PUBLIC KEY ---
/ --- END PUBLIC KEY ---
.
Nous vous conseillons d'utiliser la librairie PHPMailer qui supporte très bien la signature DKIM et génère des emails "propres". DKIM peut y être activé simplement comme suit:
$phpmailer->DKIM_domain = 'example.com';
$phpmailer->DKIM_private = '<CHEMIN CLEF PRIVEE>';
$phpmailer->DKIM_selector = '<SELECTOR>';
Vérifiez ensuite l'implémentation à l'aide de l'excellent www.mail-tester.com !