Senden von E-Mails über den Gmail-SMTP-Server in Laravel
Möchten Sie den Gmail-SMTP-Server zum Senden von E-Mails in Laravel verwenden? Manchmal sendet Ihr Server aufgrund seiner Einschränkungen oder Fehlkonfigurationen keine E-Mails. In solchen Szenarien können Sie den SMTP-Server zum Senden von E-Mails verwenden. In diesem Artikel besprechen wir, wie Sie E-Mails mit dem Gmail-SMTP-Server in Laravel senden.
Mit dem SMTP-Server landen Ihre E-Mails nicht im Spam-Ordner. Im Allgemeinen wird sie als echte E-Mail behandelt und geht in den Posteingang des Benutzers.
Ein weiterer Vorteil der Verwendung des SMTP-Servers besteht darin, dass Sie auch E-Mails von Ihrem lokalen Server senden können. Es ist hilfreich, die E-Mail-Funktionalität auf dem lokalen Server selbst zu testen.
Einrichtung des Gmail-SMTP-Servers in Laravel
Laravel verwendet eine config/mail.php
Datei, um die Details zu E-Mail-Anbietern zu speichern. Diese Datei enthält Einstellungen wie MAIL_HOST, MAIL_PORT, MAIL_ENCRYPTION usw. Der Benutzer sollte diese Informationen angeben, die von Laravel verwendet werden und Ihre E-Mails senden.
Um diese Informationen hinzuzufügen, müssen Sie config/mail.php nicht bearbeiten. Stattdessen sollten Sie diese Details in der .env
Datei speichern.
Öffnen Sie Ihre .env
Datei, die sich in Ihrem Stammverzeichnis befindet, und Sie finden unten den Code für die E-Mail-Einstellungen.
MAIL_MAILER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
Bearbeiten Sie die obigen Details wie folgt.
MAIL_MAILER=smtp
MAIL_HOST=smtp.googlemail.com
MAIL_PORT=465
MAIL_USERNAME=GMAIL_USERNAME
MAIL_PASSWORD=GMAIL_PASSWORD
MAIL_ENCRYPTION=ssl
Hier habe ich den Treiber als smtp, den Host für Gmail als smtp.googlemail.com, den SMTP-Port für Gmail als 465 und die Verschlüsselungsmethode auf ssl eingestellt. Stellen Sie sicher, dass Sie die Platzhalter GMAIL_USERNAME, GMAIL_PASSWORD durch Ihren tatsächlichen Gmail-Nutzernamen und Ihr Passwort ersetzen.
Um den Gmail-SMTP-Server zu verwenden, müssen Sie einige Einstellungen in Ihrem Google-Konto ändern. Melden Sie sich bei Ihrem Google-Konto an und klicken Sie auf „Konto”. Wenn Sie sich auf der Seite „Konto” befinden, klicken Sie auf „Sicherheit”. Scrollen Sie nach unten und Sie finden die Einstellungen für "Weniger sicherer App-Zugriff". Stellen Sie es auf EIN.
Code zum Senden von E-Mails in Laravel
In dieser Phase sind Sie mit allen grundlegenden Einstellungen abgeschlossen. Jetzt müssen Sie einen Laravel-Code schreiben, der eine E-Mail sendet.
Für dieses Tutorial werde ich eine ‘Mail’-Klasse verwenden, um Code zu schreiben. Der Benutzer kann den Code auch mit Laravel Mailable schreiben. Es wird keinen Unterschied machen. In beiden Fällen verwendet Laravel den Gmail-SMTP-Server im Hintergrund.
Wenn Sie die Klasse ‘Mail’ verwenden, sieht Ihr Code wie unten beschrieben aus.
$to_name = 'TO_NAME';
$to_email = 'TO_EMAIL_ADDRESS';
$data = array('name'=>"Sam Jose", "body" => "Test mail");
Mail::send('emails.mail', $data, function($message) use ($to_name, $to_email) {
$message->to($to_email, $to_name)
->subject('Artisans Web Testing Mail');
$message->from('FROM_EMAIL_ADDRESS','Artisans Web');
});
Im obigen Code verwende ich die Ansicht ’emails.mail’. Das bedeutet, dass Sie einen Ordner und eine Datei als resources->views->emails->mail.blade.php
.
Ihr mail.blade.php
wird Code wie folgt enthalten.
Hi <strong>{{ $name }}</strong>,
<p>{{ $body }}</p>
Das ist es! Jetzt verwendet Laravel im Hintergrund automatisch den Gmail-SMTP-Server und sendet Ihre E-Mails.
Zum Thema passende Artikel
- Laravel E-Mail-Tests: Mailtrap vs. andere Optionen
- So protokollieren Sie Abfragen in Laravel
- So installieren und verwenden Sie CKEditor in Laravel