Maison > Questions et réponses > le corps du texte
J'utilise le service de relais SMTP de Google Workspace pour envoyer des e-mails depuis mon application Laravel. Cela fonctionne bien depuis plus d'un an maintenant, mais je ne sais pas exactement ce qui l'empêche de fonctionner. Lorsque j'essaie d'envoyer un e-mail, j'obtiens l'erreur suivante :
>>> IlluminateSupportFacadesMail::to('myemail@gmail.com')->send(new AppMailCourseEnrolmentEmail($user, AppCourse::first())); // The error SymfonyComponentMailerExceptionTransportException with message 'Expected response code "250" but got an empty response.'
Je soupçonne que cela est lié à ma mise à niveau de Laravel 8 vers Laravel 9, mais je ne sais pas comment y remédier.
Monmail.php
'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, ],
Ma configuration email
MAIL_DRIVER=smtp MAIL_HOST=smtp-relay.gmail.com MAIL_PORT=587 MAIL_ENCRYPTION=TLS MAIL_FROM_NAME="My Name" MAIL_FROM_ADDRESS=myaddress@workspace.com
Je m'authentifie via IP donc aucun champ de mot de passe et de nom d'utilisateur n'est nécessaire
Configuration de mon routage GSuite Gmail
REMARQUE Dans la configuration ci-dessus, j'ai essayé de vérifier TLS et de modifier les expéditeurs autorisés par « Uniquement les utilisateurs d'applications enregistrés dans mon domaine », mais le problème persiste.
J'ai essayé les conseils de
https://laracasts.com/discuss/channels/laravel/laravel-swift-mailer-exception-expected-response-code-250-but-got-an-empty-response-using-gmail- base de données de relais smtp chauffeur
Laravel 9 - Infomaniak : Code réponse attendu "250" mais code reçu "550" avec message "550 5.7.1 Sender Mismatch"
https://stackoverflow.com/a/43283422/11752623
https://www.cubebackup.com/blog/how-to-use-google-smtp-service-to-send-emails-for-free/ Méthode 3
Tous ces efforts ont échoué. Merci pour votre aide pour résoudre ce problème.
P粉2210464252023-11-04 15:51:18
J'ai trouvé la solution,
J'ai accédé à vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php
sous la méthode assertResponseCode. J'ai répondu par une réponse qui disait :
421 4.7.0 Try again later, closing connection. (EHLO) r29-200a50c01d0000xxxxxxxxxxxx87edb.28 - gsmtp
Pour plus de détails sur cette erreur, veuillez vous référer à Google Docs
Le problème est que Swift Mailer utilise 127.0.0.1 comme domaine pour envoyer des e-mails inconnus à Gmail.
La solution était donc de mettre mon nom de domaine dans config/mail.php
fichier
'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,
'local_domain' => env('MAIL_EHLO_DOMAIN', 'mydomain.com')//this line here
],
Plus d'informations :