osyris Posted June 10, 2022 Share Posted June 10, 2022 Bonjour, Mon site est hébergé chez OVH, j'ai ajouté la clé publique dans la zone DNS de ce serveur. Maintenant, pour que tout soit opérationnel, il faut ajouter une seconde clé privée dans l'en-tête de l'e-mail. J'ai trouvé le fichier qui se charge d'envoyer les e-mails depuis Prestashop, il se trouve dans le dossier classes/mail.php. J'ai essayé de modifier ce fichier pour intégrer la clé privée dans chacun des mails, malheureusement, lorsque j'envoie un mail test depuis le back-office, cela me crée une erreur, il charge sans s'arrêter, après je suis dans l'incapacité d'envoyer d'autres e-mails, car j'ai le message que comme quoi, j'ai envoyé plus de 200 messages à l'heure. J'ai trouvé deux sujets qui en parlent. Le premier https://github.com/PrestaShop/PrestaShop/issues/23396, je ne vois pas trop où implanter le petit bout de script. Le second https://github.com/PrestaShop/PrestaShop/blob/develop/classes/Mail.php, j'ai ajouté les parties où ils y avaient DKIM dans mon fichier mail.php, dans mon back-office dans la partie test e-mail, il continue de charger sans arrêter. Toute aide sera la bienvenue et je pense que ça pourra en aider bien d'autres. Link to comment Share on other sites More sharing options...
osyris Posted July 4, 2022 Author Share Posted July 4, 2022 Bonjour, Je me suis aperçu qu’il manquait dans la base de données configuration les champs ['PS_MAIL_DKIM_ENABLE'], ['PS_MAIL_DKIM_DOMAIN'], ['PS_MAIL_DKIM_SELECTOR'] et ['PS_MAIL_DKIM_KEY'] pour que ça fonctionne correctement. J'ai donc créé ces champs et complété avec les informations personnelles données générées par le site https://dkimcore.org/tools/keys.html. Pour le champ PS_MAIL_DKIM_ENABLE, j'ai mis la valeur 1. Malheureusement, le site https://www.mail-tester.com/ me confirme que je n'ai toujours pas de clé dkim. Une personne, aurait-elle la gentillesse de bien vouloir m'aider ! Link to comment Share on other sites More sharing options...
Mediacom87 Posted July 4, 2022 Share Posted July 4, 2022 Bonjour, je ne suis jamais intervenu sur PrestaShop pour cette histoire de DKIM, seulement sur les DNS. Mais dans tous les cas, perso, je n'utilise plus mon serveur pour envoyer les emails, je passe par les services SMTP proposés par des systèmes comme Sendinblue. Link to comment Share on other sites More sharing options...
osyris Posted July 7, 2022 Author Share Posted July 7, 2022 Bonjour Mediacom87, Je suppose que tu passes par ce genre de service pour éviter de te retrouver sur blacklists et tu dois bien avoir d'autres avantages, dont je ne connais pas. Pour ce que je veux faire, il doit bien avoir une petite modification à faire dans le fichier mail.php ou c'est bien trop compliqué à mettre en place ? Link to comment Share on other sites More sharing options...
Janett Posted July 7, 2022 Share Posted July 7, 2022 Cela a été fait pour PrestaShop 8 : https://github.com/PrestaShop/PrestaShop/issues/23396 Les modifications sont visibles ici : https://github.com/PrestaShop/PrestaShop/pull/23413 Link to comment Share on other sites More sharing options...
osyris Posted July 20, 2022 Author Share Posted July 20, 2022 Bonjour, Merci pour la réponse. J'ai suivi la procédure pour modifier certains fichiers et en ajouter d'autres, ça fait beaucoup de choses à faire. Malheureusement, dans le back office des emails, il m’affiche une erreur. Ce n'est pas un reproche et je te remercie de bien avoir voulu m'aider en m'apportant des réponses, mais pour ma part, ça fait beaucoup de modifications à faire, alors qu’une petite modification du fichier email.php permet d'obtenir le même résultat. Sauf que je l'ai modifié et ça m'affiche une erreur. Je ne vois pas où je dois ajouter ce bout de script dans le fichier email.php ? Site de la source que tu m'as cité plus haut: https://github.com/PrestaShop/PrestaShop/issues/23396 $message = \Swift_SignedMessage::newInstance(); $privateKey = 'PRIVATE KEY'; $domainName = 'domain.cz'; $selector = '1610567654.domain'; $signer = new Swift_Signers_DKIMSigner($privateKey, $domainName, $selector); $message->attachSigner($signer); Link to comment Share on other sites More sharing options...
osyris Posted August 4, 2022 Author Share Posted August 4, 2022 Bonjour à tous, J'ai réussi à faire fonctionner la clé DKIM en ajoutant cette partie et rempli les informations dans les champs. bool $dkimEnable = false, string $dkimKey = '', string $dkimDomain = '', string $dkimSelector = '' /* Create new message and DKIM sign it, if enabled and all data for signature are provided */ if ($dkimEnable === true && !empty($dkimKey) && !empty($dkimDomain) && !empty($dkimSelector) ) { $signer = new Swift_Signers_DKIMSigner( $dkimKey, $dkimDomain, $dkimSelector ); $message->attachSigner($signer); } Par contre, en regardant sur le site https://github.com/PrestaShop/PrestaShop/blob/develop/classes/Mail.php, j'aperçois qu'on peut mettre les informations (sélecteur, domaine et la clé privée dans la base de donnée), ce que j'ai fait en créant les champs dans la table "configuration" et rempli chacun des champs avec mes valeurs DKIM. 'PS_MAIL_DKIM_ENABLE', 'PS_MAIL_DKIM_DOMAIN', 'PS_MAIL_DKIM_SELECTOR', 'PS_MAIL_DKIM_KEY', Dans le fichier mail.php J'ai ajouté $configuration = Configuration::getMultiple( 'PS_MAIL_DKIM_ENABLE', 'PS_MAIL_DKIM_DOMAIN', 'PS_MAIL_DKIM_SELECTOR', 'PS_MAIL_DKIM_KEY', /* Create new message and DKIM sign it, if enabled and all data for signature are provided */ if ((bool) $configuration['PS_MAIL_DKIM_ENABLE'] === true && !empty($configuration['PS_MAIL_DKIM_DOMAIN']) && !empty($configuration['PS_MAIL_DKIM_SELECTOR']) && !empty($configuration['PS_MAIL_DKIM_KEY']) ) { $signer = new Swift_Signers_DKIMSigner( $configuration['PS_MAIL_DKIM_KEY'], $configuration['PS_MAIL_DKIM_DOMAIN'], $configuration['PS_MAIL_DKIM_SELECTOR'] ); $message->attachSigner($signer); } Je ne comprends que je n'arrive pas à récupérer ces informations dans la base de données ? Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now