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 !