Trimiterea e-mailurilor este crucială pentru orice aplicație web. De obicei, este trimis un e-mail pentru a notifica utilizatorul despre un fel de activitate care a avut loc pe site, de exemplu, cum ar fi când s-au făcut actualizări sau când s-au găsit noi prieteni. În acest tutorial scurt, vă vom arăta cum să trimiteți rapid e-mailuri cu Gmail dintr-o aplicație eșantion Laravel prin extinderea funcționalității pe care am construit-o în ultimul meu tutorial, Autentificare cu Laravel 4.
Deci, vom lua această aplicație de autentificare (puteți descărca codul sursă al tutorialului anterior pe Github pentru a vă oferi un punct de pornire) pe care am terminat-o ultima dată și adăugați o funcție nouă, astfel încât ori de câte ori un utilizator se înregistrează pentru site, noi îi vom trimite un e-mail de confirmare, primind-le la aplicație!
Înainte de a putea trimite e-mailuri cu Laravel 4 trebuie să configurați app / config / mail.php
fişier. În acest fișier putem seta următoarele opțiuni:
Opțiune | Descriere |
conducător auto | Șoferul de corespondență pe care doriți să îl utilizați. În mod implicit, acest lucru este setat la SMTP, dar îl puteți schimba și pentru a utiliza funcția de mail PHPs sau Sendmail în schimb. |
gazdă | Aceasta este adresa gazdă a serverului SMTP. |
port | Portul SMTPs. |
din | Aceasta vă permite să setați câmpul din câmpul din e-mail, astfel încât toate e-mailurile să fie trimise de la aceeași adresă. |
criptare | Acesta este protocolul de criptare care va fi folosit ori de câte ori e-mailurile sunt trimise. |
nume de utilizator | Acesta este numele dvs. de utilizator SMTP. |
parola | Aceasta este parola dvs. SMTP. |
sendmail | Aceasta este calea spre locul în care poate fi găsit Sendmail pe server, când se utilizează driverul sendmail. |
pretinde | Când este setat la Adevărat , e-mailurile vor fi înregistrate într-un fișier jurnal, mai degrabă decât de fapt trimite un mesaj e-mail real. |
Pentru acest tutorial, voi folosi Gmail pentru a trimite mesajele mele de e-mail, deoarece este foarte simplu de folosit. Tot ce aveți nevoie pentru a trimite poștă cu Gmail este să aveți un cont Gmail activ, cu un nume de utilizator și o parolă. Vă voi oferi totul. Să ne editați app / config / mail.php
fișier pentru a arăta ceva de genul acesta (am eliminat comentariile pentru a face codul mai compact):
retur array ('driver' => 'smtp', 'host' => 'smtp.gmail.com', 'port' => 587, 'from' => ',' name '=>' your_gmail_username ',' password '=>' your_gmail_password ',' sendmail '=>' / usr / sbin / sendmail -bs ',' pretend '=> false,);
Aici l-am părăsit conducător auto
setat la smtp
. Am setat gazdă
a folosi smtp.gmail.com
care este serverul SMTP al Gmail. Am setat port
la 587
, din
la o adresă de e-mail falsă care sună potrivit pentru aplicația noastră. Am plecat criptare
setat la tls
și în cele din urmă veți dori să introduceți în propriul Gmail nume de utilizator
și parola
pentru contul dvs. și plecați pretinde
setat la fals
.
Pentru această aplicație, ori de câte ori un utilizator se înregistrează cu succes, vrem să le trimitem un e-mail prin care să le primim pe site. Trimiterea de e-mailuri cu Laravel se face folosind Mail :: trimite ()
metodă. Iată un mic fragment de cod, de exemplu în scopuri:
Mail :: trimiteți ('folder.view', $ date, function ($ message) $ message-> to ('registered-user @ gmail.com', 'Jon Doe' 4 Auth App! '););
Primul argument este fișierul de vizualizare pe care dorim să îl folosim pentru a formata mesajul nostru de e-mail. Al doilea argument este orice date pe care dorim să le transmitem fișierului de vizualizare respectiv. Al treilea argument este o închidere care acceptă a $ mesaj
obiect pe care îl putem folosi pentru a spune mailerului căruia îi trimitem e-mailul și care va fi subiectul acestui e-mail. În această închidere, puteți specifica și alte opțiuni, cum ar fi atașamentele, etc. Aceasta va trimite apoi e-mailul utilizatorului.
Destul de ușor?
Să ne modificăm acum UsersController
„s postCreate ()
acțiune și luați ceea ce am învățat despre trimiterea de e-mailuri pentru a trimite un mesaj de poștă electronică de bun venit utilizatorilor noștri, de fiecare dată când se înregistrează pentru aplicație.
În cadrul nostru postCreate ()
acțiunea lui dacă
declarație, unde verificăm dacă validarea a trecut, imediat după ce am salvat utilizatorul în baza de date, să adăugăm următorul cod:
dacă ($ validator-> passes ()) $ user = utilizator nou; $ user-> firstname = Intrare :: get ('firstname'); $ user-> lastname = Intrare :: get ('lastname'); $ user-> email = intrare :: get ('email'); $ user-> parola = Hash :: make (Input :: get ('parola')); $ User-> Salvare (); Mail :: trimite ('users.mails.welcome', array ('firstname' => Input :: get ('firstname')), function ($ message) $ message-> '), Input :: get (' firstname '). Intrare :: get (' lastname ')) -> subiect (' Welcome to Laravel 4 Auth App! Utilizatori / login) -> cu ('mesaj', 'Vă mulțumim pentru înregistrare!'); else return Redirecționare :: la (' ') -> cuErrors ($ validator) -> cuInput ();
Aici am sunat Mail :: trimite ()
și i-au spus să folosească a users.mails.welcome
Vezi fișierul. Apoi, trecem într-o matrice ca date care ar trebui să fie disponibile în fișierul de vizualizare, în acest caz tocmai am trimis numele de utilizator, utilizând Intrare :: get ( 'firstname')
metodă. Apoi, vom crea închiderea noastră și vom seta această opțiune pentru a trimite e-mailul la adresa de e-mail a utilizatorului. De asemenea, setăm numele utilizând numele și prenumele utilizatorului din formular. În cele din urmă, dăm doar un subiect destul de generic (puteți folosi orice subiect doriți), astfel încât utilizatorul să știe despre ce e vorba.
Acum trebuie să ne creăm Bine ati venit
fișier de vizualizare a e-mailului Sub app / views / utilizatori
creați un nou folder numit mail-uri
și în interiorul acestuia creează un nou fișier numit welcome.blade.php
și adăugați în următorul cod:
Bună, $ firstname!
Ne-ar plăcea să vă întâmpinăm personal la aplicația de autentificare Laravel 4. Multumim pentru inregistrare!
În acest fișier de vizualizare avem doar câteva coduri de bază, folosind $ firstname
variabilă pe care am trecut-o ca date de la controlorul nostru spre vizualizare, salutând utilizatorul la aplicație. Nu ai prea multe lucruri, poți să folosești fișierele de vizualizare pentru e-mailuri ca și tine pentru orice altă vizualizare.
Asigurați-vă că ați pornit serverul dvs. web folosind php artisan servi
și putem vizita localhost: 8000 / utilizatori / registru
, apoi creați un utilizator nou:
... și apoi verificați contul de e-mail al utilizatorului pentru a verifica dacă e-mailul a fost trimis cu succes:
Perfect! Emailul nostru a fost trimis.
Și asta e totul pentru a trimite mesaje de poștă electronică cu Laravel 4 și Gmail. Puteți personaliza, bineînțeles, mesajele dvs. de e-mail la fel de mult ca și cum ați dori să faceți poșta mai atrăgătoare.
Acum, acesta este cel mai simplu mod de a trimite e-mailuri cu Laravel și vă poate încetini aplicația în jos, deoarece trimite e-mailul, dar aveți și alte opțiuni. Veți continua să utilizați clasa de e-mail a lui Laravel, dar în loc să o trimiteți imediat, puteți să vă coadă e-mailurile pentru a le trimite în fundal, fără ca utilizatorii dvs. să aștepte. Dar acest subiect este cel mai bine salvat pentru un articol separat.
Pentru mai multe informații despre trimiterea de e-mail cu Laravel consultați documentația online. Vă mulțumim pentru lectură.