J'essaie de configurer SwiftMailer dans le modèle Yii 2.0 avancé. J'ai traversé de nombreux postes et j'ai compris qu'il y a des problèmes avec Gmail. Mon environnement de configuration dans le développement est le suivant:
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'useFileTransport' => false, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => gethostbyname('smtp.gmail.com'), 'username' => 'xxx@gmail.com', 'password' => 'xxssxxxx', 'port' => '465', 'encryption' => 'ssl' ]
6 Réponses :
pour gmail: le cryptage doit être réglé sur TLS code>, port vers
587 code> et hôte à
smtp.gmail.com code> (vérifier si votre < em> gethostbyname ('smtp.gmail.com'), em> obtenir la valeur correcte) Voir l'exemple ci-dessous:
J'ai déjà essayé cette configuration et j'ai eu l'erreur ci-dessus liée à l'opération SSL échoué lors de l'utilisation de TLS. Je les ai essayés à la fois SSL et TLS avec et sans la fonction GetHostByName et donne l'un des deux résultats mentionnés ci-dessus.
Êtes-vous sûr, vous utilisez Gmail comme serveur de messagerie pour le routage de l'e-mail ou pourriez-vous être basé sur un autre serveur de messagerie? Par exemple, votre application est hébergée sur un serveur.
Mon application est hébergée sur un serveur XAMPP local. Mon partenaire travaille avec le même localhost et elle n'a pas le problème avec la même configuration. Notre différence est qu'elle utilise Windows et je suis sur un Mac.
Essayez d'utiliser l'IP Gmail SMTP
'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => '64.233.171.108', 'username' => 'XXXXXXX@gmail.com', 'password' => 'XXXXXXX', 'port' => '587', 'encryption' => 'tls', ],
Vérifiez:
Ceci est ma configuration. Un envoi de courriel avec succès. p>
J'ai ajouté une description de ma réponse @younghobbit, merci;)
J'ai eu cette question ma supervision étant que je connais avec TLS comme mon cryptage, tandis que le serveur distant n'a pris en charge que l'ancien cryptage SSL. P>
Tout ce que j'ai fait était de changer de valeur de paramètre de cryptage de "TLS" à "SSL" et tout a fonctionné. P>
J'espère que cela aide quelqu'un. P>
Les options peuvent être définies comme ceci:
'mailer' => [ 'class' => 'yii\swiftmailer\Mailer', 'viewPath' => '@common/mail', 'useFileTransport' => false, 'transport' => [ 'class' => 'Swift_SmtpTransport', 'host' => gethostbyname('smtp.gmail.com'), 'username' => 'xxx@gmail.com', 'password' => 'xxssxxxx', 'port' => '465', 'encryption' => 'ssl', 'streamOptions' => [ 'ssl' => [ 'allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false, ], ] ]
Cela crée une question de sécurité - il vous ouvrira aux attaques de MITM. Ne pas l'utiliser B>.
Ajout de streamoptions résolvé mes problèmes!
'streamOptions' => [ 'ssl' => [ 'allow_self_signed' => true, 'verify_peer' => false, 'verify_peer_name' => false, ], ]
Cela crée une question de sécurité - il vous ouvrira aux attaques de MITM. Ne pas l'utiliser B>.
Merci pour votre commentaire. Je l'ai supprimé, mais mon courrier ne fonctionnait pas sans cette solution. Maintenant, Google a fait quelque chose et ça marche.
utilisez-vous php 5.6?