it-swarm.com.de

Fehler beim SMTP-Server-Fehler bei Verwendung von Google Mail

Ich versuche, E-Mails für mein erstes Laravel-Projekt einzurichten, und war begeistert, dass dafür ein Laracast vorhanden ist: https://laracasts.com/lessons/mailers

Ich bin den einfachen Schritten gefolgt und habe gmail in mail.php gewählt (x wurde aus Anonymitätsgründen hinzugefügt): 

'driver' => env('MAIL_DRIVER', 'smtp'),
'Host' => env('MAIL_Host', 'smtp.gmail.com'),
'port' => env('MAIL_PORT', 587),
'from' => ['address' => '[email protected]', 'name' => 'Diane Kaplan'],
'encryption' => env('MAIL_ENCRYPTION', 'tls'),
'username' => '[email protected]',
'password' => 'xxxxx',
'sendmail' => '/usr/sbin/sendmail -bs',
'pretend' => false,

.env hat (x wurde aus Anonymitätsgründen hinzugefügt) - Der Laracast hat nicht die Verwendung von MAIL_USERNAME und MAIL_PASSWORD, aber sie werden aus gutem Grund aktualisiert, vorausgesetzt, ich werde später von dort abziehen: 

MAIL_DRIVER=smtp
MAIL_Host=mailtrap.io
MAIL_PORT=2525
[email protected]
MAIL_PASSWORD=xxxxxx
MAIL_ENCRYPTION=null

Beim ersten Versuch, eine E-Mail zu senden (3:30 Uhr), erhalte ich einen Authentifizierungsfehler: Swift_TransportException in AuthHandler.php Zeile 181: @ gmail.com "mit 3 möglichen Authentifizierern

Basierend auf ein paar Stackoverflow-Informationen habe ich versucht, den Zugriff auf weniger sichere Apps in meinen Google Mail-Einstellungen zu aktivieren. Der Fehler wurde jedoch nicht geändert. (Und die anderen Beiträge zu diesem Thema hatten andere Faktoren, die ein schickeres Problem machten als meine). 

Nichts springt von laravel.log (unten) auf mich - irgendwelche Ideen? 

[2015-11-26 12:25:55] local.ERROR: exception 'Swift_TransportException' with message 'Failed to authenticate on SMTP server with username "[email protected]" using 3 possible authenticators' in /home/vagrant/Code/Family-laravel/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/Esmtp/AuthHandler.php:181
Stack trace:
    #0 /home/vagrant/Code/Family-laravel/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/EsmtpTransport.php(307): Swift_Transport_Esmtp_AuthHandler->afterEhlo(Object(Swift_SmtpTransport))
    #1 /home/vagrant/Code/Family-laravel/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Transport/AbstractSmtpTransport.php(118): Swift_Transport_EsmtpTransport->_doHeloCommand()
    #2 /home/vagrant/Code/Family-laravel/vendor/swiftmailer/swiftmailer/lib/classes/Swift/Mailer.php(79): Swift_Transport_AbstractSmtpTransport->start()
    #3 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php(395): Swift_Mailer->send(Object(Swift_Message), Array)
    #4 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php(181): Illuminate\Mail\Mailer->sendSwiftMessage(Object(Swift_Message))
    #5 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php(220): Illuminate\Mail\Mailer->send('emails.welcome', Array, Object(Closure))
    #6 /home/vagrant/Code/Family-laravel/app/Http/routes.php(59): Illuminate\Support\Facades\Facade::__callStatic('send', Array)
    #7 /home/vagrant/Code/Family-laravel/app/Http/routes.php(59): Illuminate\Support\Facades\Mail::send('emails.welcome', Array, Object(Closure))
    #8 [internal function]: App\Providers\RouteServiceProvider->{closure}()
    #9 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php(155): call_user_func_array(Object(Closure), Array)
    #10 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php(130): Illuminate\Routing\Route->runCallable(Object(Illuminate\Http\Request))
    #11 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(704): Illuminate\Routing\Route->run(Object(Illuminate\Http\Request))
    #12 [internal function]: Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
    #13 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(139): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
    #14 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #15 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
    #16 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(706): Illuminate\Pipeline\Pipeline->then(Object(Closure))
    #17 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(671): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
    #18 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php(631): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
    #19 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(236): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
    #20 [internal function]: Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
    #21 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(139): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
    #22 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #23 [internal function]: Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
    #24 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
    #25 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #26 [internal function]: Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
    #27 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
    #28 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(62): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #29 [internal function]: Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
    #30 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
    #31 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #32 [internal function]: Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
    #33 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
    #34 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(59): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #35 [internal function]: Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
    #36 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
    #37 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(42): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #38 [internal function]: Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
    #39 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(124): call_user_func_array(Array, Array)
    #40 [internal function]: Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
    #41 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): call_user_func(Object(Closure), Object(Illuminate\Http\Request))
    #42 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(122): Illuminate\Pipeline\Pipeline->then(Object(Closure))
    #43 /home/vagrant/Code/Family-laravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(87): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
    #44 /home/vagrant/Code/Family-laravel/public/index.php(54): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
    #45 {main}  
7
Diane Kaplan

Haben Sie die Option "Weniger sichere Apps zulassen" aktiviert? gehe zu diesem Link

https://myaccount.google.com/security#connectedapps

Sehen Sie sich das Menü Anmelden & Sicherheit -> Apps mit Kontozugriff an.

Sie müssen die Option "Weniger sichere Apps zulassen" aktivieren.

Wenn es immer noch nicht funktioniert, versuchen Sie eine der folgenden:

  • Gehen Sie zu https://accounts.google.com/UnlockCaptcha , und klicken Sie auf Weiter Und entsperren Sie Ihr Konto für den Zugriff über andere Medien/Websites.

  • Verwenden Sie ein doppeltes Anführungszeichen in Ihrem Passwort: "Ihr Passwort"

Und ändern Sie Ihre .env-Datei 

MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=xxxxxx
MAIL_ENCRYPTION=tls

das in mail.php angegebene Objekt wird nur verwendet, wenn der Wert in der .env-Datei nicht verfügbar ist.

23
Milan Maharjan

Es ist nichts falsch mit Ihrer Methode, es handelt sich um ein Problem mit der G-Mail-Sicherheit.

  1. G-Mail-Kontoeinstellungen anmelden.

  2. Aktivieren Sie die Bestätigung in zwei Schritten.

  3. App-Passwort generieren .

  4. Verwenden Sie ein neu generiertes Kennwort anstelle Ihres echten G-Mail-Kennworts.

Vergessen Sie nicht, den Cache zu löschen.

php artisan config:cache.
php artisan config:clear.

MAIL_DRIVER=smtp
MAIL_Host=mailtrap.io
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=generatedAppPassword
MAIL_ENCRYPTION=tls
3
benjolly1989

Ich hatte das gleiche Problem, aber als ich den folgenden Befehl ausgeführt hatte, war er in Ordnung

php artisan config:cache
2

Ich hatte das gleiche Problem und ich habe schon alles ausprobiert und nichts schien zu funktionieren, bis ich den Wert für "Host" in der config.php geändert habe:

 'Host' => env('smtp.mailtrap.io'),

Als ich das geändert habe, funktionierte es gut, irgendwie benutzte es den Standardhost "smtp.mailtrap.org" und ignorierte die von mir eingestellte .env-Variable.

Nachdem ich einige Tests gemacht hatte, wurde mir klar, dass es funktionieren würde, wenn ich die env-Variable in diese Reihenfolge setzte:

MAIL_Host = smtp.mailtrap.io

MAIL_DRIVER = smtp

MAIL_PORT = 2525

MAIL_USERNAME = xxxx

MAIL_PASSWORD = xxx

MAIL_ENCRYPTION = null

1
Luis Mata B.

So habe ich dieses Problem gelöst:

  1. Ändern Sie die .env-Datei wie folgt

Screenshot Reference

  1. Vergessen Sie nicht, den Server neu zu starten, nachdem Sie die .env-Datei geändert haben
0