Ich versuche immer wieder, das Senden einer E-Mail von localhost zu testen, kann es aber immer noch nicht. Ich weiß nicht mehr, wie es geht. 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 habe die .env
Datei schon so bearbeitet :
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=password
MAIL_ENCRYPTION=null
Antworten:
Melden Sie sich zuerst bei Ihrem Google Mail-Konto an und klicken Sie unter "
My account > Sign In And Security > Sign In to google
Aktivieren" auftwo step verification
. Anschließend könnenapp password
Sie das App-Kennwort in der.env
Datei generieren und verwenden .Ihre
.env
Datei sieht dann ungefähr so ausMAIL_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
die.env
Datei auszuführen, nachdem Sie Änderungen an Ihrer Datei vorgenommen haben.quelle
norton, kaspersky
usw. haben, deaktivieren Sie diese und testen Sie, ob das Senden einer E-Mail funktioniert oder nicht.Versuchen Sie, sendmail anstelle des SMTP- Treibers zu verwenden (gemäß 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
quelle
Alles was Sie tun müssen, ist nur in der Datei you.env zu 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 gehen Sie 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 das Passwort nicht erneut bearbeiten oder dasselbe App-Passwort ändern (Sie können mehrere App-Passwörter erstellen).
quelle
Dies ist ein Arbeitsprobe, das ich ausprobiert habe:
Öffnen Sie den
mail.php
unterconfig
Ordner dann mit dieser Option füllen:'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',
Öffnen Sie Ihre
.env
Datei unterroot
Projekt. Bearbeiten Sie diese Datei auch wie oben beschriebenDanach löschen Sie Ihre Konfiguration, indem Sie diesen Befehl ausführen
Starten Sie Ihren lokalen Server neu
Versuchen Sie, Ihre Route mit Controller zu besuchen, der beim ersten Mal eine Mail-Funktion enthält, die immer noch fehlerhaft ist
Authentication Required
. Sie müssen sich über Ihr Google Mail-Konto anmelden, um eine nicht vertrauenswürdige Verbindung zu autorisieren. Besuchen Sie diesen Link , um zu autorisierenquelle
Wenn Sie nach dem Einstellen aller Konfigurationen immer noch E-Mails senden können und verbotene oder Timeout-Fehler erhalten, können Sie dies
allow less secure apps to access your account
in Google Mail festlegen. Hier erfahren Sie, wie es gehtquelle
Hinweis: Laravel 7 hat MAIL_DRIVER durch MAIL_MAILER ersetzt
MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=yourgmailaddress MAIL_PASSWORD=yourgmailpassword MAIL_ENCRYPTION=tls
Zulassen weniger sicherer Apps über "Google-Konto" - https://myaccount.google.com/ - Einstellungen - Weniger sicherer App-Zugriff (Aktivieren)
Cache-Konfiguration leeren:
Für Apache:
quelle
Sie müssen zuerst das App-Passwort Ihres Google-Kontos -> Link zum Sicherheitsbereich aktivieren
Kopieren Sie dann das zu generierende App-Passwort und fügen Sie es in die ENV-Datei ein
MAIL_DRIVER=smtp MAIL_HOST=smtp.googlemail.com MAIL_PORT=465 [email protected] MAIL_PASSWORD=app_password MAIL_ENCRYPTION=ssl
quelle
Ihr
MAIL_PASSWORD=must a APPpasword
nach dem Wechsel .env den Server deaktivieren Sie dann configuratios cahce php Handwerker Config zu stoppen: cahce und starten Sie den Server erneutReferenz In Laravel 5.2 kann keine Nachricht ohne Absenderadresse gesendet werden. Ich habe sowohl .env als auch mail.php festgelegt
quelle
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.
quelle
Das Problem für mich ist, dass aus irgendeinem Grund der Benutzername / das Passwort von der Mail-Konfiguration NULL kam. So überprüfen Sie dies vor dem Senden einer E-Mail mit dem folgenden Code:
dd(Config::get('mail'));
Wenn Ihr Benutzername / Passwort auf Null gesetzt wurde, setzen Sie einfach Folgendes:
Config::set('mail.username', 'yourusername'); Config::set('mail.password', 'yourpassword');
quelle
in bluehost konnte ich das passwort nicht zurücksetzen; mit diesem Treiber gearbeitet:
quelle
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 finden Sie hier
quelle
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, das Anwendungskennwort https://myaccount.google.com/security und uns als
MAIL_PASSWORD
Umgebungsvariable zu generieren .Ich habe dies herausgefunden, indem ich den Fehlercode von Google Server überprüft habe, der voll genutzt wurde und mich zu dieser Webseite geführt hat.
quelle
Sie können auch versuchen, diese beiden Zeilen zu laravel hinzuzufügen:
[email protected] MAIL_FROM_NAME="[email protected]"
Führen Sie danach diesen Befehl aus, um die Mail-Cache-Konfiguration zu leeren:
quelle
MAIL_DRIVER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
[email protected]
MAIL_PASSWORD=yourpassword
MAIL_ENCRYPTION=tls
MAIL_FROM_NAME='Name'
Ermöglichen Sie weniger sicheren Apps den Zugriff auf Ihr Konto in der Google Mail-Sicherheitseinstellung.
quelle
Verwenden eines G Suite-Kontos
Wenn Sie ein G Suite-Konto verwenden, schlägt alles fehl, was Sie versuchen. Zumindest zur Zeit wird diese Antwort getippt. Sie müssen
@gmail.com
Konto verwenden, alles andere@example.com
wird nicht funktionieren.Nachdem Sie die
gmail.com
Adresse verwendet haben. Sie müssen nur aktualisieren,.env
da die meisten der bereits erwähnten Personen.MAIL_MAILER=smtp MAIL_HOST=smtp.gmail.com MAIL_PORT=587 MAIL_USERNAME=****@gmail.com MAIL_PASSWORD=16digitapppassword MAIL_ENCRYPTION=tls MAIL_FROM_ADDRESS=****@gmail.com MAIL_FROM_NAME="${APP_NAME}"
Vergessen Sie nicht, ein App-Passwort zu erstellen . Wenn Sie die Option nicht sehen, ist Ihre 2-Faktor-Authentifizierung wahrscheinlich nicht aktiviert. Wenn Sie diesem Ansatz folgen, müssen Sie keine weniger sicheren Apps zulassen.
quelle
Ändern Sie einfach MAIL_ENCRYPTION = null in MAIL_ENCRYPTION = tls
Und führen Sie diesen Befehl "php artisan config: cache" aus
quelle