Send e -post i Laravel ved hjelp av SMTP

Send e -post i Laravel ved hjelp av SMTP
Å sende en e -post er et vanlig krav for alle webapplikasjoner. Noen generelle bruksområder for sending av e -post inkluderer å verifisere brukerregistrering, få tilbakemeldinger fra brukere, gi alternativer for å kontakte nettstedsadministratoren osv. Laravel -rammeverket inneholder flere pakker for å sende e -post fra Laravel -prosjektet. SMTP, Mailgun, Postmark og Amazon SES brukes i Laravel for å sende enkle, transaksjonelle og bulk -e -postmeldinger. Laravel har et e-postsendingsbibliotek som heter SwiftMailer for å sende en e-post med en e-postmal. Denne opplæringen viser deg hvordan du sender en enkel e -post ved hjelp av SMTP.

SMTP -oppsett og konfigurasjon

Åpne .env fil fra rotmappen til Laravel -prosjektet og konfigurer konfigurasjonen i henhold til Gmail -kontoen din. Du må aktivere “Mindre sikker app”Alternativet til Gmail -kontoen din for å sende en e -post ved hjelp av Gmail SMTP -serveren.

Mail_mailer = smtp
Mail_host = smtp.Gmail.com
Mail_port = 465
Mail_usname = your_email_address
Mail_password = your_password
Mail_encryption = ssl

***Merk:

Du kan motta SMTP -autentiseringsfeil mens du sender e -post ved hjelp av SMTP Gmail Account Server. Åpne Streambuffer.PHP fil fra følgende sted.

/var/www/html/laravelpro/leverandør/swiftmailer/swiftmailer/
lib/klasser/hurtig/transport/streambuffer.PHP

Finn og erstatt linje 259 med følgende linje for å autentisere Gmail SMTP -serveren.

$ alternativer ['ssl'] = array ('verify_peer' => falsk, 'verify_peer_name' => falsk,
'tillatt_self_signed' => true);

Sende e -post ved hjelp av SMTP

Utfør følgende trinn for å sende e -post ved hjelp av kontaktskjemaet ved å opprette en kontroll-, visnings- og postklasse.

Trinn:

Kjør følgende kommando fra terminalen for å opprette E -postController For å vise kontaktskjemaet og sende en e -post ved hjelp av Laravel Mail Class.

$ PHP Artisan Make: Controller EmailController

Kjør følgende kommando for å opprette en e -postklasse som heter Sendingsmail. Dette vil skape klassen under App \ mail mappe.

$ PHP Artisan Make: Mail SendingEmail

Lag en visningsfil som heter E -post.blad.PHP med følgende kode for å vise kontaktskjemaet.




Kontakt oss skjema












Kontakt oss




@If (Count ($ feil)> 0)



    @foreach ($ feil-> alle () som $ feil)
  • $ feil

  • @endforeach


@slutt om
@if ($ melding = økt :: get ('suksess'))


$ melding

@slutt om



csrf_field ()


















Åpen E -postController og endre koden med følgende kode. De Post fasade og Sendingsmail postklasser importeres i begynnelsen av filen. Her, The indeks () Metoden laster inn visningsfilen i nettleseren for å vise kontaktskjemaet. Etter å ha sendt skjemaet, sende() Metoden vil bli kalt. Denne metoden vil validere skjemaet ved å bruke valideringsreglene. De $ data Array brukes til å sende verdiene til Navn og beskjed felt inn i Sendingsmail klasse. Deretter sendes e -posten ved hjelp av Post fasade. Du må angi en gyldig e -postadresse til mottakeren i til() funksjon før du utfører koden. Hvis e -posten sender vellykket, vil en suksessmelding skrives ut.

namespace -app \ http \ kontrollere;
Bruk Illuminate \ http \ forespørsel;
Bruk Illuminate \ Support \ Facades \ Mail;
Bruk app \ Mail \ SendingEmail;
Klasse e -postkontroller utvider kontrolleren

Funksjonsindeks ()

Returnvis ('E -postmelding');

funksjon send (forespørsel $ forespørsel)

$ this-> valider ($ forespørsel, [
'navn' => 'påkrevd',
'e -post' => 'påkrevd | e -post',
'melding' => 'påkrevd'
]);
$ data = matrise (
'navn' => $ forespørsel-> Navn,
'melding' => $ forespørsel-> melding
);
Mail :: til ('mottaker e-postadresse')-> send (ny sendingail ($ data));
Returner tilbake ()-> med ('suksess', 'takk for at du kontaktet oss!');

Åpne Sendingsmail Klasse og endre koden med følgende kode. E -postfaget er definert i bygge() metode og e -post_template Vis brukes til å formatere e -postinnholdet, opprettet i neste trinn. Verdiene gikk fra E -postController lagres i $ e -post objekt og sendes i e -post_template utsikt.

namespace app \ mail;
Bruk Illuminate \ Bus \ Queueable;
Bruk Illuminate \ Contracts \ Queue \ Shouldqueue;
Bruk Illuminate \ Mail \ Sendelig;
Bruk Illuminate \ Queue \ SerializesModels;
Klassesending E -post utvider sendbar

Bruk queueable, serialisesmodeller;
/**
* Opprett en ny meldingsforekomst.
*
* @return void
*/
Offentlige $ e -postmeldinger;
offentlig funksjon __konstruksjon ($ e -post)

$ this-> e-post = $ e-post;

/**
* Bygg meldingen.s
*
* @return $ dette
*/
offentlig funksjonsbygging ()

Returner $ dette-> emnet ('melding fra besøkende')
-> visning ('e -post_template')
-> med ('e-post', $ this-> e-post);

Opprett malingsfilen som heter e -post_template.blad.PHP med følgende kode for å sende den formaterte e -posten til avsenderen. Verdiene gikk fra Sendingsmail Klasse brukes i denne malen.

Hallo,
jeg er $ e -post ['navn']


Spørringen min handler om følgende emne:


$ e -post ['melding'].


Det vil være nyttig hvis du gir meg svar snart.Takk skal du ha.

Nå, åpne Web.PHP fil og legg til følgende rutekode for å åpne kontaktskjemaet og sende e -posten.

Rute :: Get ('/Contact', 'EmailController@Index');
Rute :: Post ('/SendEmail/Send', 'EmailController@send');

Kjør følgende URL fra nettleseren for å laste inn kontaktskjemaet.

http: // localhost/laravelpro/public/contact

Fyll ut skjemaet og klikk på Sende melding knapp for å sende innholdet i skjemaet til sende() metode for E -postController klasse.

Hvis e -posten sendes vellykket, vil du få suksessmeldingen, som vist i følgende bilde.

Nå, åpne Gmail -kontoen som du pleide å sende en e -post i sende() metode for E -postController klasse. Hvis du åpner e -posten, vil du få følgende e -postinnhold, generert ved å bruke en e -post_template Vis fil.

Videoopplæring

Konklusjon

Flere måter finnes i Laravel -rammeverket for å sende en e -post. Den mest enkle og enkleste måten å sende e -post i Laravel vises i denne opplæringen. Hvis du har en Gmail -konto, kan du enkelt sende en e -post ved å følge trinnene som vises i denne opplæringen. Gmail SMTP -serveren brukes her til å sende en e -post, og e -postsendingsoppgaven testes ved å kjøre koden fra den lokale serveren. Denne opplæringen viser kun HTML-formaterte e-postsendingsoppgaver. Du kan også utføre andre oppgaver, som fil vedlegg, avsendernavn osv., ved å bruke andre metoder for Post klasse.