Att skicka e-post är avgörande för alla webbapplikationer. Vanligtvis skickas ett mail för att meddela användaren om någon typ av aktivitet som har ägt rum på webbplatsen, till exempel när uppdateringar har gjorts eller när nya vänner har hittats. I denna korta handledning visar jag dig hur du skickar e-postmeddelanden med Gmail snabbt från en Laravel-provansökan genom att utvidga funktionaliteten som vi byggde i min senaste handledning, Autentisering med Laravel 4.
Så vi tar den autentiseringsapplikationen (du kan ladda ner den tidigare handledningens källkod på Github för att ge dig en startpunkt) som vi slutade med förra gången och lägga till en ny funktion så att när en användare registrerar för sajten skickar dem ett bekräftelsemail och välkomnar dem till appen!
Innan vi kan skicka e-post med Laravel 4 måste vi konfigurera app / config / mail.php
fil. I den här filen kan vi ange följande alternativ:
Alternativ | Beskrivning |
förare | Den postförare som du vill använda. Som standard är detta inställt på SMTP, men du kan också ändra det för att använda PHPs-funktionen eller Sendmail istället. |
värd | Det här är din SMTP-serverns värdadress. |
hamn | Din SMTP-port. |
från | Det här låter dig ställa in fältet i ditt e-postmeddelande, så att alla e-postmeddelanden skickas från samma adress. |
kryptering | Detta är krypteringsprotokollet som ska användas när e-postmeddelanden skickas. |
Användarnamn | Detta är ditt SMTP användarnamn. |
Lösenord | Detta är ditt SMTP-lösenord. |
skicka brev | Det här är sökvägen till Where Sendmail finns på servern när du använder sendmail-drivrutinen. |
låtsas | När den är inställd på Sann , e-postmeddelanden loggas till en loggfil, snarare än att skicka ett riktigt e-postmeddelande. |
För den här handledningen ska jag använda Gmail för att skicka mina e-postmeddelanden eftersom det är super enkelt att använda. Allt du behöver för att skicka mail med Gmail är att ha ett aktivt Gmail-konto med ett användarnamn och lösenord. Jag ska förse dig med allt annat. Låt oss redigera vår app / config / mail.php
fil för att se något så här (jag tog bort kommentarerna för att göra koden mer kompakt):
returnera array ('driver' => 'smtp', 'värd' => 'smtp.gmail.com', 'port' => 587, 'från' => array ('adress' => 'authapp @ awesomeauthapp. com ',' namn '=>' Awesome Laravel 4 Auth App '),' kryptering '=>' tls ',' användarnamn '=>' ditt_gmail_username ',' password '=>' your_gmail_password ',' sendmail '=>' / usr / sbin / sendmail -bs ',' låtsas '=> falskt,);
Här har jag lämnat förare
satt till smtp
. Jag satte värd
att använda smtp.gmail.com
som är Gmails SMTP-server. Jag satte hamn
till 587
, de från
till en falsk e-postadress som låter passande för vår ansökan. Jag lämnade kryptering
satt till tls
och äntligen vill du ange din egen Gmail Användarnamn
och Lösenord
för ditt konto och lämna låtsas
satt till falsk
.
För den här applikationen, närhelst en användare lyckas registrera, vill vi skicka dem ett mail som välkomnar dem till webbplatsen. Skicka e-post med Laravel görs med hjälp av Mail :: skicka ()
metod. Här är ett litet kodstycke, till exempel:
Mail :: Skicka ('folder.view', $ data, funktion ($ message) $ message-> till ('registered-user @ gmail. Com', 'Jon Doe') -> ämne ('Välkommen till Laravel 4 Auth App! '););
Det första argumentet är den visningsfil vi skulle vilja använda för att formatera vårt e-postmeddelande. Det andra argumentet är data som vi skulle vilja överföra till den visningsfilen. Det tredje argumentet är en nedläggning som accepterar a $ message
objekt som vi kan använda för att berätta för e-posten vem vi skickar e-post till och vad ämnet för det här e-postmeddelandet kommer att vara. I den här nedläggningen kan du också ange andra alternativ, t.ex. bilagor etc. Det skickar sedan e-postmeddelandet till användaren.
Ganska lätt rätt?
Låt oss nu ändra vår UsersController
's postCreate ()
åtgärd och ta det vi har lärt oss om att skicka e-postmeddelanden för att skicka ett välkomstmeddelande till våra användare, när de registrerar sig för appen.
Inom vårt postCreate ()
åtgärder om
uttalande, där vi kontrollerar om valideringen har passerat, strax efter det vi lagrar användaren i databasen, låt oss lägga till följande kod:
om ($ validator-> passerar ()) $ user = new User; $ user-> firstname = Input :: get ('firstname'); $ user-> lastname = Input :: get ('efternamn'); $ user-> email = Input :: get ('email'); $ user-> password = Hash :: make (Input :: get ('lösenord')); $ User-> save (); Mail :: send ('users.mails.welcome', array ('firstname' => Input :: get ('firstname')), funktion ($ meddelande) $ message-> to (Input :: get '), Input :: get (' firstname '). ". Input :: get (' efternamn ')) -> ämne (' Välkommen till Laravel 4 Auth App! ');), Returnera Omdirigera :: till 'användare / inloggning') -> med ('meddelande', 'Tack för att du registrerade!'); else return Omdirigera :: till ') -> withErrors ($ validator) -> withInput ();
Här har vi kallat Mail :: skicka ()
metod och berättade för att använda a users.mails.welcome
visa fil. Vi skickar sedan i en array som de data som ska finnas tillgängliga i visningsfilen, i det här fallet skickade vi just i användarens förnamn med hjälp av Input :: få (förnamn)
metod. Därefter skapar vi vår stängning och ställer in det här för att skicka e-postmeddelandet till användarens e-postadress. Vi ställer även namnet med användarens för- och efternamn från formuläret. Slutligen ger vi bara ett ganska generiskt ämne (du kan använda vilket ämne du vill), så användaren vet vad all väsen handlar om.
Nu behöver vi skapa vår Välkommen
e-postvy. Under app / visningar / användare
skapa en ny mapp som heter postmeddelanden
och inuti det skapar en ny fil som heter welcome.blade.php
och lägg till i följande kod:
Hej, $ firstname!
Vi vill gärna välkomna dig till Laravel 4 Authentication Application. tack för din registrering!
I den här visningsfilen har vi bara grundläggande HTML, med hjälp av $ firstname
variabel som vi passerade som data från vår controller till vyn, välkomnar användaren till applikationen. Det finns inte mycket med det, du kan använda dina visningsfiler för e-postmeddelanden precis som du gör för någon annan vy.
Se till att du startar din webbserver med php artisan tjäna
och vi kan besöka localhost: 8000 / användare / register
, Skapa sedan en ny användare:
... och kontrollera sedan användarens e-postkonto för att verifiera att e-postmeddelandet skickades framgångsrikt:
Perfekt! Vår e-post skickades.
Och det är allt som finns för att skicka e-postmeddelanden med Laravel 4 och Gmail. Du kan självklart anpassa dina e-postmeddelanden så mycket som du vill göra mailet mer tilltalande.
Nu är det här det enklaste sättet att skicka mail med Laravel och det kan sakta ner din app, eftersom den skickar e-postmeddelandet, men du har andra alternativ. Du fortsätter att använda Laravels postklass, men istället för att skicka det direkt kan du köa dina e-postmeddelanden så att de skickas ut i bakgrunden, utan att dina användare väntar. Men det här ämnet sparas bäst för en separat artikel.
För mer information om att skicka e-post med Laravel kolla in dokumentationen online. Tack för att du läser.