0
votes

Laravel 8: La connexion n'a pas pu être établie avec l'hôte smtp.gmail.com

J'essaie d'envoyer un simple e-mail à partir de mon application laravel 8 à l'aide du serveur SMTP de Google, mais cela ne fonctionne pas, j'obtiens cette erreur:

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=direction@gmail.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"

ou

stream_socket_enable_crypto(): SSL operation failed with code 1. OpenSSL Error messages: error:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed 

J'ai trouvé de nombreux articles SO concernant ce problème mais aucun d'entre eux n'a fonctionné pour moi, voici une liste de ce que j'ai essayé:

  • Activer les applications moins sécurisées dans le compte Google
  • en utilisant les ports 465 et 587
  • Utilisation de smtp.googlemail.com et smtp.gmail.com
  • Utilisation de MAIL_ENCRYPTION=tls et ssl
  • Changement de 'stmp' en 'sendmail'
  • Bloquer la contrainte SSL de switmailer

Y a-t-il autre chose que je peux essayer?

Voici ma configuration de messagerie, bien que j'en ai essayé plusieurs versions:

Swift_TransportException
Connection could not be established with host smtp.gmail.com :stream_socket_client(): SSL:


3 commentaires

vérifiez ceci https://stackoverflow.com/questions/30556773/how-to-fix-stre‌ am-socket-enable-cry‌ pto-ssl-operation-fa‌ iled-with-code-1


Pouvez-vous envoyer la configuration de courrier s'il vous plaît. (Omettez simplement les mots de passe, etc.)


@ChrisTownsend bien sûr, je l'ai ajouté à la question


3 Réponses :


0
votes

Essayez ceci et ajoutez la variable d'environnement supplémentaire du mode auth

    'smtp' => [
        'transport' => 'smtp',
        'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
        'port' => env('MAIL_PORT', 587),
        'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        'username' => env('MAIL_USERNAME'),
        'password' => env('MAIL_PASSWORD'),
        'timeout' => null,
        'auth_mode' => env('MAIL_AUTH_MODE'),
    ],

Maintenant, allez dans config/mail.php

et changer

    'smtp' => [
        'transport' => 'smtp',
        'host' => env('MAIL_HOST', 'smtp.mailgun.org'),
        'port' => env('MAIL_PORT', 587),
        'encryption' => env('MAIL_ENCRYPTION', 'tls'),
        'username' => env('MAIL_USERNAME'),
        'password' => env('MAIL_PASSWORD'),
        'timeout' => null,
        'auth_mode' => null,
    ],

à

MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=direction@gmail.com
MAIL_PASSWORD=password
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=null
MAIL_FROM_NAME="${APP_NAME}"
MAIL_AUTH_MODE=login


3 commentaires

Il échoue toujours ... lance le deuxième message d'erreur affiché dans la question


Aléatoire. Votre environnement a-t-il la date et l'heure correctes pour définir le fuseau horaire dans lequel vous vous trouvez?


Ce n'était pas le cas, mais je l'ai changé et échoue toujours.



0
votes

Enfin, c'était un problème avec Windows. J'ai trouvé des articles indiquant que Windows ne peut tout simplement pas exécuter certains services de messagerie. J'ai essayé exactement le même code sur un ordinateur avec Ubuntu et cela a fonctionné au premier essai.


0 commentaires

0
votes

J'ai eu le même problème, je viens de désactiver mon antivirus (Avast / windows 10) et son fonctionnement.


0 commentaires