Der Versand von E-Mails ist für jede Webanwendung von entscheidender Bedeutung. Normalerweise wird eine E-Mail gesendet, um den Benutzer über Aktivitäten auf der Website zu informieren, z. B. wenn Aktualisierungen vorgenommen oder neue Freunde gefunden wurden. In diesem kurzen Tutorial zeige ich Ihnen, wie Sie E-Mails mit Gmail schnell aus einer Laravel-Beispielanwendung heraus versenden, indem Sie die Funktionalität erweitern, die wir in meinem letzten Tutorial, Authentication With Laravel 4, entwickelt haben.
Wir nehmen also diese Authentifizierungsanwendung (Sie können den Quellcode des vorherigen Tutorials auf Github herunterladen, um Ihnen einen Startpunkt zu geben), die wir mit dem letzten Mal beendet haben, und fügen eine neue Funktion hinzu, so dass wir immer, wenn sich ein Benutzer für die Website registriert, wir registrieren schicke ihnen eine Bestätigungs-E-Mail und begrüße sie in der App!
Bevor wir E-Mails mit Laravel 4 versenden können, müssen Sie das konfigurieren app / config / mail.php
Datei. In dieser Datei können wir die folgenden Optionen einstellen:
Möglichkeit | Beschreibung |
Treiber | Der Mailing-Treiber, den Sie verwenden möchten. Standardmäßig ist dies auf SMTP eingestellt. Sie können es jedoch auch ändern, um stattdessen die PHP-Mail-Funktion oder Sendmail zu verwenden. |
Wirt | Dies ist die Hostadresse Ihres SMTP-Servers. |
Hafen | Ihr SMTP-Port. |
von | Auf diese Weise können Sie das Feld "Von" in Ihrer E-Mail festlegen, sodass alle E-Mails von derselben Adresse gesendet werden. |
Verschlüsselung | Dies ist das Verschlüsselungsprotokoll, das verwendet wird, wenn E-Mails gesendet werden. |
Nutzername | Dies ist Ihr SMTP-Benutzername. |
Passwort | Dies ist Ihr SMTP-Passwort. |
sendmail | Dies ist der Pfad, zu dem sich Sendmail auf dem Server befindet, wenn der sendmail-Treiber verwendet wird. |
so tun als ob | Wenn eingestellt auf wahr , E-Mails werden in einer Protokolldatei protokolliert, anstatt tatsächlich eine E-Mail-Nachricht zu senden. |
Für dieses Tutorial werde ich Google Mail zum Versenden meiner E-Mail-Nachrichten verwenden, da es sehr einfach zu verwenden ist. Um E-Mails mit Google Mail zu senden, benötigen Sie lediglich ein aktives Google Mail-Konto mit einem Benutzernamen und einem Kennwort. Ich werde dich mit allem anderen versorgen. Lassen Sie uns unsere bearbeiten app / config / mail.php
Datei, die ungefähr so aussieht (ich habe die Kommentare entfernt, um den Code kompakter zu gestalten):
return array ('driver' => 'smtp', 'host' => 'smtp.gmail.com', 'port' => 587, 'from' => array ('address' => 'authapp @ awesomeauthapp.com.) ',' name '=>' Awesome Laravel 4 Auth App '),' Verschlüsselung '=>' tls ',' username '=>' your_gmail_username ',' password '=>' your_gmail_password ',' sendmail '=>' / usr / sbin / sendmail -bs ',' pretend '=> false,);
Hier habe ich die verlassen Treiber
einstellen smtp
. Ich habe das eingestellt Wirt
benutzen smtp.gmail.com
Dies ist der SMTP-Server von Google Mail. Ich habe das eingestellt Hafen
zu 587
, das von
an eine falsche E-Mail-Adresse, die für unsere Anwendung passend klingt. Ich verließ das Verschlüsselung
einstellen tls
und schließlich möchten Sie dann Ihre eigene Google Mail eingeben Nutzername
und Passwort
für dein Konto und verlassen so tun als ob
einstellen falsch
.
Für diese Anwendung möchten wir ihnen bei jeder erfolgreichen Registrierung eine E-Mail senden, in der sie auf der Website begrüßt werden. Das Versenden von E-Mails mit Laravel erfolgt über die Mail :: send ()
Methode. Hier ist ein kleiner Code-Ausschnitt, zum Beispiel:
Mail :: send ('folder.view', $ data, function ($ message) $ message-> an ('registered-user @ gmail. Com', 'Jon Doe') -> subject ('Willkommen bei der Laravel 4 Auth App! '););
Das erste Argument ist die Ansichtsdatei, die wir zum Formatieren unserer E-Mail-Nachricht verwenden möchten. Das zweite Argument sind alle Daten, die wir an diese Ansichtsdatei übergeben möchten. Das dritte Argument ist eine Schließung, die a akzeptiert $ message
Objekt, das wir verwenden können, um dem Mailer mitzuteilen, an wen wir die E-Mail senden und was der Betreff dieser E-Mail sein wird. In dieser Schließung können Sie auch andere Optionen angeben, z. B. Anhänge usw. Dadurch wird die E-Mail an den Benutzer gesendet.
Ganz einfach richtig?
Lassen Sie uns jetzt unsere ändern UsersController
's postCreate ()
Nehmen Sie an den Maßnahmen teil, die wir über das Versenden von E-Mails erhalten haben, um unseren Benutzern eine Willkommens-E-Mail zu senden, sobald sie sich für die App registrieren.
In unserem postCreate ()
Aktionen ob
Anweisung, wo wir überprüfen, ob die Validierung bestanden hat, unmittelbar nachdem wir den Benutzer in der Datenbank gespeichert haben, fügen wir den folgenden Code hinzu:
if ($ validator-> passt ()) $ user = neuer Benutzer; $ user-> firstname = Eingabe :: get ('firstname'); $ user-> lastname = Eingabe :: get ('lastname'); $ user-> email = Eingabe :: get ('email'); $ user-> password = Hash :: make (Eingabe :: get ('password')); $ user-> save (); Mail :: send ('users.mails.welcome', Array ('firstname' => Input :: get ('firstname')), Funktion ($ message) $ message-> an (Input :: get ('email) '), Input :: get (' firstname '). ". Input :: get (' lastname ')) -> subject (' Willkommen bei der Laravel 4 Auth App! ');); Umleitung :: an ( 'Benutzer / Login') -> mit ('Nachricht', 'Danke für die Registrierung!'); else return Redirect :: an ('Benutzer / Registrieren') -> mit ('Nachricht', 'Die folgenden Fehler sind aufgetreten ') -> withErrors ($ validator) -> withInput ();
Hier haben wir das angerufen Mail :: send ()
Methode und sagte ihm, ein zu verwenden Benutzer.Mails.Willkommen
Datei ansehen. Wir übergeben dann ein Array als die Daten, die in der Ansichtsdatei verfügbar sein sollten. In diesem Fall haben wir nur den Vornamen des Benutzers unter Verwendung von gesendet Eingabe :: get ('Vorname')
Methode. Als Nächstes erstellen wir unseren Abschluss und legen diesen fest, um die E-Mail an die E-Mail-Adresse des Benutzers zu senden. Der Name wird auch anhand des Vor- und Nachnamens des Benutzers aus dem Formular festgelegt. Zum Schluss geben wir diesem Thema nur ein ziemlich allgemeines Thema (Sie können das gewünschte Thema verwenden), so dass der Benutzer weiß, worum es bei dem ganzen Aufruhr geht.
Jetzt müssen wir unsere erstellen herzlich willkommen
E-Mail-Ansichtsdatei. Unter App / Ansichten / Benutzer
Erstellen Sie einen neuen Ordner mit dem Namen Mails
und darin erstellen Sie eine neue Datei mit dem Namen welcome.blade.php
und füge folgenden Code hinzu:
Hallo $ $ Vorname!
Wir möchten Sie persönlich zur Laravel 4 Authentication Application begrüßen. Danke für die Registrierung!
In dieser Ansichtsdatei haben wir nur ein paar grundlegende HTML-Anweisungen $ vorname
Variable, die wir als Daten von unserem Controller an die Ansicht übergeben haben, um den Benutzer in der Anwendung zu begrüßen. Es gibt nicht viel zu tun, Sie können Ihre Ansichtsdateien für E-Mails genauso verwenden wie für jede andere Ansicht.
Stellen Sie sicher, dass Sie Ihren Webserver mit starten Php Handwerker dienen
und wir können besuchen localhost: 8000 / Benutzer / registrieren
, Erstellen Sie dann einen neuen Benutzer:
… Und überprüfen Sie dann das E-Mail-Konto dieses Benutzers, um sicherzustellen, dass die E-Mail erfolgreich gesendet wurde:
Perfekt! Unsere E-Mail wurde gesendet.
Und das ist alles, um E-Mail-Nachrichten mit Laravel 4 und Gmail zu senden. Sie können Ihre E-Mail-Nachrichten natürlich so anpassen, dass Sie die E-Mail ansprechender gestalten möchten.
Dies ist die grundlegendste Methode zum Versenden von E-Mails mit Laravel. Dies kann Ihre App verlangsamen, da sie die E-Mail sendet. Sie haben jedoch andere Optionen. Sie verwenden weiterhin die E-Mail-Klasse von Laravel. Statt sie jedoch sofort zu senden, können Sie Ihre E-Mails in eine Warteschlange stellen, um sie im Hintergrund versenden zu können, ohne dass Ihre Benutzer warten müssen. Dieses Thema wird jedoch am besten für einen separaten Artikel gespeichert.
Weitere Informationen zum Senden von E-Mails mit Laravel finden Sie in der Online-Dokumentation. Danke fürs Lesen.