Sende e-post er avgjørende for alle webapplikasjoner. Vanligvis sendes en e-post for å varsle brukeren om noen form for aktivitet som har funnet sted på nettstedet, for eksempel når oppdateringer er gjort, eller når nye venner har blitt funnet. I denne korte opplæringen viser jeg deg hvordan du sender e-post med Gmail raskt fra et Laravel-prøveprogram ved å utvide funksjonaliteten som vi bygde i min siste opplæring, godkjenning med Laravel 4.
Så vi tar den autentiseringsprogrammet (du kan laste ned kildekoden for den tidligere opplæringen på Github for å gi deg et utgangspunkt) som vi endte med sist gang, og legge til en ny funksjon slik at når en bruker registrerer for nettstedet, sender dem en bekreftelses-e-post, og ønsker dem velkommen til appen!
Før vi kan sende e-post med Laravel 4, må vi konfigurere app / config / mail.php
fil. I denne filen kan vi angi følgende alternativer:
Alternativ | Beskrivelse |
sjåfør | Den postdriver du vil bruke. Som standard er dette satt til SMTP, men du kan også endre det for å bruke PHPs-funksjonen eller Sendmail i stedet. |
vert | Dette er SMTP-serverens vertsadresse. |
havn | Din SMTP-port. |
fra | Dette lar deg sette fra feltet i e-posten din, slik at alle e-postmeldinger sendes fra samme adresse. |
kryptering | Dette er krypteringsprotokollen som vil bli brukt når e-postmeldinger sendes. |
brukernavn | Dette er ditt SMTP brukernavn. |
passord | Dette er ditt SMTP-passord. |
sendmail | Dette er banen til hvor Sendmail kan bli funnet på serveren, når du bruker sendmail-driveren. |
late som | Når satt til ekte , e-postmeldinger vil bli logget til en loggfil, i stedet for å sende en ekte e-postmelding. |
For denne opplæringen skal jeg bruke Gmail til å sende mine e-postmeldinger som det er super enkelt å bruke. Alt du trenger for å sende e-post med Gmail, er å ha en aktiv Gmail-konto, med brukernavn og passord. Jeg gir deg alt annet. La oss redigere vår app / config / mail.php
fil for å se noe slikt ut (jeg fjernet kommentarene for å gjøre koden mer kompakt):
returnere array ('driver' => 'smtp', 'vert' => 'smtp.gmail.com', 'port' => 587, 'fra' => array ('adresse' => 'authapp @ awesomeauthapp. com ',' navn '=>' Awesome Laravel 4 Auth App '),' kryptering '=>' tls ',' brukernavn '=>' your_gmail_username ',' passord '=>' your_gmail_password ',' sendmail '=>' / usr / sbin / sendmail -bs ',' late '=> false,);
Her har jeg forlatt sjåfør
satt til smtp
. Jeg satte vert
å bruke smtp.gmail.com
som er Gmail's SMTP-server. Jeg satte havn
til 587
, de fra
til en falsk e-postadresse som lyder passende for vår søknad. Jeg forlot kryptering
satt til tls
og til slutt vil du da legge inn i din egen Gmail brukernavn
og passord
for kontoen din og gå late som
satt til falsk
.
For denne applikasjonen, når en bruker er vellykket registrerer, vil vi sende dem en e-post som ønsker dem velkommen til nettstedet. Sende e-post med Laravel er gjort ved å bruke Mail :: send ()
metode. Her er en liten kodebit, for eksempel:
Mail :: send ('folder.view', $ data, funksjon ($ melding) $ message-> til ('registered-user @ gmail. Com', 'Jon Doe') -> emne ('Velkommen til Laravel 4 Auth App! '););
Det første argumentet er visningsfilen vi vil bruke for å formatere vår e-postmelding. Det andre argumentet er data som vi ønsker å sende til den visningsfilen. Det tredje argumentet er et lukke som aksepterer a $ melding
objekt som vi kan bruke til å fortelle e-postøren hvem vi sender e-post til og hva emnet for denne e-posten vil være. I denne lukkingen kan du også angi andre alternativer, for eksempel vedlegg, etc. Dette sender deretter e-posten til brukeren.
Ganske enkelt riktig?
La oss nå endre vår UsersController
's postCreate ()
handling og ta det vi har lært om å sende e-postmeldinger for å sende en velkommen e-postmelding til brukerne våre, når de registrerer seg for appen.
Innenfor vår postCreate ()
handlingens hvis
uttalelse, der vi kontrollerer om valideringen er passert, rett etter hvor vi lagrer brukeren i databasen, la oss legge til i følgende kode:
hvis ($ validator-> passerer ()) $ user = new User; $ user-> firstname = Input :: get ('firstname'); $ user-> lastname = Input :: get ('etternavn'); $ user-> email = Input :: get ('email'); $ user-> password = Hash :: make (Input :: get ('passord')); $ Bruker-> Lagre (); Mail :: send ('users.mails.welcome', array ('firstname' => Input :: få ('fornavn')), funksjon ($ melding) $ message-> til (Input :: get '), Input :: get (' firstname '). ". Input :: get (' lastname ')) -> emne (' Velkommen til Laravel 4 Auth App! ');); Returnere Omdirigering :: til 'bruker / logg inn') -> med ('melding', 'Takk for registrering!'); else return Omdirigere :: til ('brukere / register') -> med ('melding', 'Følgende feil oppstod ') -> withErrors ($ validator) -> withInput ();
Her har vi kalt Mail :: send ()
metode og fortalte det å bruke a users.mails.welcome
se fil. Vi sender så i en matrise som dataene som burde være tilgjengelige i visningsfilen, i dette tilfellet sendte vi nettopp i brukernavnet, ved hjelp av Input :: får ( 'fornavn')
metode. Deretter lager vi nedleggelsen vår og angir dette for å sende e-posten til brukerens e-postadresse. Vi stiller også navnet med brukerens fornavn og etternavn fra skjemaet. Til slutt gir vi bare dette et ganske generisk emne (du kan bruke hvilket som helst emne du vil), så brukeren vet hva alt oppstyret handler om.
Nå må vi lage vår Velkommen
e-postvisning. Under app / visninger / brukere
opprett en ny mappe som heter post
og innsiden av den oppretter en ny fil som heter welcome.blade.php
og legg til i følgende kode:
Hei, $ firstname!
Vi ønsker deg personlig velkommen til Laravel 4 Authentication Application. takk for din registrering!
I denne visningsfilen har vi bare noen grunnleggende HTML, ved hjelp av $ firstname
variabel som vi passerte som data fra vår kontroller til visningen, velkommen brukeren til applikasjonen. Det er ikke mye i det, du kan bruke visningsfilene dine for e-post, akkurat som du gjør for en annen visning.
Sørg for å starte opp din webserver ved hjelp av php artisan tjene
og vi kan besøke localhost: 8000 / brukere / register
, og opprett en ny bruker:
... og deretter sjekke brukerens e-postkonto for å bekrefte at e-posten ble sendt vellykket:
Perfekt! Vår e-post ble sendt.
Og det er alt som er å sende e-postmeldinger med Laravel 4 og Gmail. Du kan selvfølgelig tilpasse e-postmeldingene dine så mye som du vil gjøre e-posten mer tiltalende.
Nå er dette den mest grunnleggende måten å sende e-post med Laravel, og det kan bremse appen din, siden den sender e-posten, men du har andre alternativer. Du fortsetter å bruke Laravels e-postklass, men i stedet for å sende den umiddelbart, kan du kjøre e-postene dine for å få dem sendt ut i bakgrunnen, uten at brukerne venter. Men dette emnet blir best lagret for en egen artikkel.
For mer informasjon om sending av e-post med Laravel, sjekk ut online dokumentasjonen. Takk for at du leste.