Configuration de DomainKeys/DKIM dans un PHP-base de client SMTP
Il semble que il ya quelques grandes bibliothèques de faire DomainKeys la signature des e-mails sur C#/.NET, mais je vais avoir vraiment du mal à trouver le même type de support pour PHP. Peut-être que je ne cherche pas au bon endroit?
Le seul que j'ai trouvé est http://php-dkim.sourceforge.net/; il semble incroyablement hacky et prend en charge PHP4 seulement. Compte tenu de la popularité de PHP, et comment la critique DomainKeys sont pour les e-mails de classification comme non-spam, je m'attends à de meilleurs outils, savez-vous de tout? D'autres astuces vous recommanderais de?
Extra info: je suis en utilisant un serveur SMTP externe fournisseur parce que j'ai besoin d'envoyer des milliers de courriels par jour.
- en bas de voter Ici est un exemple de fonctions de comment envoyer des e-mails avec dkim et de la fonction php mail (): github.com/breakermind/PHP-DKIM
Vous devez vous connecter pour publier un commentaire.
Je le recommande DKIM soutien à la MTA niveau de sorte que tous vos générées par le serveur de messagerie d'un domaine donné est signée par défaut. (sauf si vous avez une très bonne raison de ne pas signer tous les générées par le serveur e-mail pour un domaine).
Le meilleur point de départ de ma recherche sur google pour obtenir DKIM le programme d'installation sur LAMPE avec dkim-milter et sendmail (sur CentOS 5.2 dans mon cas) a été Jeff Atwood post sur l'envoi d'e-mails à l'aide de code.
Je suis d'accord avec lui que les 2 premières choses que vous devriez adresse inverse enregistrement PTR et la signature DKIM.
Également très important:
Ici est la e-mail l'adresse ip de la liste noire checker que j'ai utilisé.
Ces 5 choses résoudra peut-être 95% de votre e-mail des problèmes de livraison.
Ce Guide pour Fedora/dkim-milter/postfix est également très bon.
Le mail de PHP bibliothèque que j'utilise pour mon application est PHPMailer 5.1 qui a DKIM (et PHP 5 seulement), mais après avoir fait des recherches, j'ai décidé de mettre en œuvre à l'sendmail niveau a été une meilleure solution. Comme vous pouvez le voir, même l'auteur de PHPMailer 5.1 ne suggère pas DKIM au mail de PHP bibliothèque de niveau est la meilleure solution http://dkim.worxware.com/.
Bonne chance à vous.
C'est celui qui a été sur mon radar pendant un certain temps et ne pouvait pas trouver une réponse définitive à la question initiale de ce fil n'importe où sur le web. J'ai été en mesure de mettre en œuvre l'envoi de la signature DKIM SMTP email avec PHP/Pear. Ci-dessous sont les étapes nécessaires.
J'ai trouvé une version modifiée de la DKIM de http://www.ra726.net/blog/2010/07/20/sending-email-to-gmail-from-php-without-being-marked-as-spam/ (vous pouvez la télécharger via http://www.ra726.net/php-dkim.zip). Si vous avez déjà mis en œuvre DKIM, et juste besoin de la faire fonctionner avec SMP mail, puis tous vous avez besoin est la dkim.php fichier qui, comme le blog dit, est légèrement modifié pour gérer les en-têtes passé comme un tableau. Dans mon code, je l'ai nommé dkimNEW.php.
Vous assurer d'inclure la plupart des en-têtes, de sorte que le MTA ne pas modifier le message une fois que vous avez signé. Dans mes recherches limitées, la plupart des en-têtes ajoutés sont la Date et au Message-ID-têtes, donc mon en-tête de tableau ressemble à ceci: Remarque: j'ai utilisé ce pour l'envoi d'un email html, les modifier pour les adapter! Aussi, ajoutez votre nom de domaine comme la dernière partie du Message-ID
Vous obtiendrez alors d'utiliser le modifié dkim.php mentionnés ci-dessus pour inscrire votre e-mail ET d'ajouter une signature pour les en-têtes de tableau, aka
Le reste du code est le code pour l'envoi de mail via SMTP avec PHP/Pear. Le travail plein de code est:
PS. Juste au cas où vous n'avez pas remarqué, remplacez les valeurs par votre propre!
Par conséquent, tout ce qui est essentiellement nécessaire pour faire DKIM pour travailler avec e-mail SMTP (ou bien le mail de PHP) est de s'assurer que vous spécifiez tous les en-têtes qui sont ajoutés à votre email votre MTA, puis connectez-les en-têtes, l'objet et le corps du message, et enfin l'inclure en partie signé avec votre en-tête.
Avez-vous essayer : phpMailDomainSigner Il soutien DKIM-Signature et la clé de domaine domainkey-Signature dans le Style Orienté Objet.
Voici quelques exemple:
Une classe uniquement pour DKIM qui est un spin-off de PHPMailer, mais avec des améliorations concernant le respect de la RFC et agréable et propre de code :
https://sourceforge.net/projects/dkim-class-php/
Exemple :