6
votes

SwiftMailer de Advanced Yii 2.0 ne fonctionne pas avec Gmail

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'
        ]


1 commentaires

utilisez-vous php 5.6?


6 Réponses :


1
votes

pour gmail: le cryptage doit être réglé sur TLS , port vers 587 et hôte à smtp.gmail.com (vérifier si votre < em> gethostbyname ('smtp.gmail.com'), obtenir la valeur correcte) Voir l'exemple ci-dessous: XXX


3 commentaires

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.



2
votes

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',
        ],


0 commentaires

0
votes

Vérifiez:

  1. Connexion Internet
  2. Configuration par e-mail

    Ceci est ma configuration. Un envoi de courriel avec succès. xxx


1 commentaires

J'ai ajouté une description de ma réponse @younghobbit, merci;)



0
votes

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.

Tout ce que j'ai fait était de changer de valeur de paramètre de cryptage de "TLS" à "SSL" et tout a fonctionné.

J'espère que cela aide quelqu'un.


0 commentaires

18
votes

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,
            ],
        ]
    ]


1 commentaires

Cela crée une question de sécurité - il vous ouvrira aux attaques de MITM. Ne pas l'utiliser .



-1
votes

Ajout de streamoptions résolvé mes problèmes!

'streamOptions' => [ 
        'ssl' => [ 
            'allow_self_signed' => true,
            'verify_peer' => false,
            'verify_peer_name' => false,
        ],
    ]


2 commentaires

Cela crée une question de sécurité - il vous ouvrira aux attaques de MITM. Ne pas l'utiliser .


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.