wake-up-neo.com

Wie versende ich E-Mails mit Google Mail in Laravel 5.1?

Ich versuche immer wieder, eine E-Mail von localhost zu senden, kann es aber immer noch nicht. Ich weiß nicht mehr, wie ich es machen soll. Ich versuche zu suchen, um eine Lösung zu finden, aber ich kann keine finden. Ich habe config/mail.php bearbeitet:

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Mail Driver
    |--------------------------------------------------------------------------
    |
    | Laravel supports both SMTP and PHP's "mail" function as drivers for the
    | sending of e-mail. You may specify which one you're using throughout
    | your application here. By default, Laravel is setup for SMTP mail.
    |
    | Supported: "smtp", "mail", "sendmail", "mailgun", "mandrill", "ses", "log"
    |
    */

    'driver' => env('MAIL_DRIVER', 'smtp'),

    /*
    |--------------------------------------------------------------------------
    | SMTP Host Address
    |--------------------------------------------------------------------------
    |
    | Here you may provide the Host address of the SMTP server used by your
    | applications. A default option is provided that is compatible with
    | the Mailgun mail service which will provide reliable deliveries.
    |
    */

    'Host' => env('MAIL_Host', 'smtp.gmail.com'),

    /*
    |--------------------------------------------------------------------------
    | SMTP Host Port
    |--------------------------------------------------------------------------
    |
    | This is the SMTP port used by your application to deliver e-mails to
    | users of the application. Like the Host we have set this value to
    | stay compatible with the Mailgun e-mail application by default.
    |
    */

    'port' => env('MAIL_PORT', 587),

    /*
    |--------------------------------------------------------------------------
    | Global "From" Address
    |--------------------------------------------------------------------------
    |
    | You may wish for all e-mails sent by your application to be sent from
    | the same address. Here, you may specify a name and address that is
    | used globally for all e-mails that are sent by your application.
    |
    */

    'from' => ['address' => '[email protected]', 'name' => 'Do not Reply'],

    /*
    |--------------------------------------------------------------------------
    | E-Mail Encryption Protocol
    |--------------------------------------------------------------------------
    |
    | Here you may specify the encryption protocol that should be used when
    | the application send e-mail messages. A sensible default using the
    | transport layer security protocol should provide great security.
    |
    */

    'encryption' => env('MAIL_ENCRYPTION', 'tls'),

    /*
    |--------------------------------------------------------------------------
    | SMTP Server Username
    |--------------------------------------------------------------------------
    |
    | If your SMTP server requires a username for authentication, you should
    | set it here. This will get used to authenticate with your server on
    | connection. You may also set the "password" value below this one.
    |
    */

    'username' => env('MAIL_USERNAME'),

    /*
    |--------------------------------------------------------------------------
    | SMTP Server Password
    |--------------------------------------------------------------------------
    |
    | Here you may set the password required by your SMTP server to send out
    | messages from your application. This will be given to the server on
    | connection so that the application will be able to send messages.
    |
    */

    'password' => env('MAIL_PASSWORD'),

    /*
    |--------------------------------------------------------------------------
    | Sendmail System Path
    |--------------------------------------------------------------------------
    |
    | When using the "sendmail" driver to send e-mails, we will need to know
    | the path to where Sendmail lives on this server. A default path has
    | been provided here, which will work well on most of your systems.
    |
    */

    'sendmail' => '/usr/sbin/sendmail -bs',

    /*
    |--------------------------------------------------------------------------
    | Mail "Pretend"
    |--------------------------------------------------------------------------
    |
    | When this option is enabled, e-mail will not actually be sent over the
    | web and will instead be written to your application's logs files so
    | you may inspect the message. This is great for local development.
    |
    */

    'pretend' => false,

];
`

und ich bearbeitete .env Datei schon so:

MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null

Es erzeugte immer noch Fehler wie diesen: enter image description here

63
SRENG Khorn

melden Sie sich zuerst in Ihrem Google Mail-Konto an und aktivieren Sie unter My account > Sign In And Security > Sign In to googletwo step verification. Anschließend können Sie app password generieren und dieses App-Passwort in der Datei .env verwenden.

Ihre .env - Datei sieht dann ungefähr so ​​aus

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

Vergessen Sie nicht, php artisan config:cache Auszuführen, nachdem Sie Änderungen in Ihrer .env - Datei vorgenommen haben.

119
Sid

Versuchen Sie es mit sendmail anstelle von smtp driver (entsprechend diesen Empfehlungen: - http://code.tutsplus.com/tutorials/sending-emails-with-laravel-4-gmail--net-36105 )

MAIL_DRIVER=sendmail
MAIL_Host=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=apppassword
MAIL_ENCRYPTION=tls
18
Martins

Sie müssen nur die Datei you.env bearbeiten, fertig.

MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=465
MAIL_USERNAME=<your_email_address>
MAIL_PASSWORD=<your_gmail_app_password_>
MAIL_ENCRYPTION=ssl

für das App-Passwort gehe zu https://support.google.com/accounts/answer/185833?hl=de

und erstellen Sie Ihr App-Passwort und speichern Sie es für die zukünftige Verwendung. Denn sobald Sie ein App-Passwort generiert haben, können Sie es nicht mehr ändern oder das gleiche App-Passwort ändern. (Sie können mehrere App-Passwörter erstellen.)

15
Rahul Kulabhi

Dies ist ein Beispiel, das ich ausprobiert habe:

Öffne dein mail.php unter config Ordner füllen Sie dann mit dieser Option:

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

Öffne dein .env Datei unter root Projekt. Bearbeiten Sie diese Datei auch wie oben beschrieben

MAIL_DRIVER=smtp    
MAIL_Host=smtp.gmail.com   
MAIL_PORT=587      
MAIL_USERNAME=youremailusername
MAIL_PASSWORD=youremailpassword
MAIL_ENCRYPTION=tls

Danach löschen Sie Ihre Konfiguration, indem Sie diesen Befehl ausführen

php artisan config:cache

Starten Sie Ihren lokalen Server neu

Versuchen Sie, besuchen Sie Ihre Route mit Controller enthält Mail-Funktion zum ersten Mal noch Fehler Authentication Required. Sie müssen sich über Ihr Google Mail-Konto anmelden, um eine nicht vertrauenswürdige Verbindung zu autorisieren. Besuchen Sie diese Link , um zu autorisieren

13
Faris Rayhan

wenn Sie immer noch in der Lage sind, E-Mails zu senden, nachdem Sie alle Einstellungen richtig vorgenommen und verbotene oder Timeout-Fehler erhalten haben, können Sie das allow less secure apps to access your account in Google Mail. Sie können folgen, wie hier

7
Gokigooooks

Ich arbeite für mich, nachdem ich verschiedene Kombinationen ausprobiert habe.

MAIL_DRIVER=smtp
MAIL_Host=smtp.gmail.com
MAIL_PORT=465
[email protected]
MAIL_PASSWORD=passowrd
MAIL_ENCRYPTION=ssl

Es ist erforderlich, ein Anwendungskennwort zu generieren https://myaccount.google.com/security und es als MAIL_PASSWORD Umgebungsvariable.

Ich habe dies durch Überprüfen des Fehlercodes vom Google-Server herausgefunden, der voll genutzt wurde und mich zu this führte.

0
unknown_coder

ihre MAIL_PASSWORD=must a APPpasword nach der Änderung der . env stoppen Sie den Server, dann löschen Sie die Konfiguration von PHP Artisan Config: cahce und starten Sie den Server erneut

reference Kann keine Nachricht ohne Absenderadresse in laravel 5.2 Ich habe .env und mail.php beide gesetzt

0

Das Problem für mich ist, dass der Benutzername/das Passwort aus irgendeinem Grund NULL aus der Mail-Konfiguration kam. Um dies vor dem Senden einer E-Mail zu überprüfen, geben Sie den folgenden Code ein:

dd(Config::get('mail'));

Wenn Ihr Benutzername/Passwort ungültig wurde, setzen Sie es einfach mit:

Config::set('mail.username', 'yourusername');
Config::set('mail.password', 'yourpassword');

in bluehost konnte ich das Passwort nicht zurücksetzen; mit diesem treiber hat gearbeitet:

MAIL_DRIVER=sendmail

Wenn Sie auf einem XAMPP entwickeln, benötigen Sie einen SMTP-Dienst, um die E-Mail zu senden. Versuchen Sie es mit einem MailGun-Konto. Es ist kostenlos und einfach zu bedienen.

0
Masud Miah

Sie können auch versuchen, laravel diese 2 Zeilen hinzuzufügen:

[email protected]
MAIL_FROM_NAME="[email protected]"

Führen Sie anschließend diesen Befehl aus, um die Mail-Cache-Konfiguration zu leeren:

php artisan config:cache
0
gtamborero

Wenn Sie ein E-Mail-Passwort verwenden, sollten Sie es durch ein App-Passwort ersetzen. Um das APP-Passwort festzulegen, müssen Sie die zweistufige Authentifizierung aktivieren, bevor Sie ein Passwort festlegen, das später deaktiviert werden kann.

Stellen Sie außerdem sicher, dass Sie im Einstellungsbereich eine weniger sichere App zugelassen haben. Weitere Informationen erhalten Sie unter hier

0
svikramjeet