laravel

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 å sende e-post inkluderer bekreftelse av brukerregistrering, å få tilbakemelding fra brukere, gi muligheter for å kontakte nettstedsadministrator osv. Laravel-rammeverket inneholder flere pakker for å sende e-post fra Laravel-prosjektet. SMTP, Mailgun, Poststempel og Amazon SES brukes i Laravel for å sende enkle, transaksjons- og bulk-e-poster. Laravel har et e-postbibliotek som heter SwiftMailer for å sende en e-post med en e-postmal. Denne veiledningen viser deg hvordan du sender en enkel e-post ved hjelp av SMTP.

SMTP-oppsett og konfigurasjon

Åpne .env filen fra rotmappen til Laravel-prosjektet, og konfigurer konfigurasjonen i henhold til Gmail-kontoen din. Du må aktivere “Mindre sikker app”Alternativet for 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_USERNAME = DIN_EMAIL_ADDRESS
MAIL_PASSWORD = DIN_PASSWORD
MAIL_ENCRYPTION = ssl

***Merk:

Du kan motta SMTP-godkjenningsfeilen mens du sender e-post ved hjelp av SMTP Gmail-kontoserveren. Åpne StreamBuffer.php filen fra følgende sted.

/ var / www / html / laravelpro / vendor / swiftmailer / swiftmailer /
lib / klasser / Swift / Transport / StreamBuffer.php

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

$ options ['ssl'] = array ('verify_peer' => false, 'verify_peer_name' => false,
'allow_self_signed' => sant);

Sende e-post ved hjelp av SMTP

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

Fremgangsmåte:

Kjør følgende kommando fra terminalen for å opprette EmailController for å vise kontaktskjemaet og sende en e-post ved hjelp av Laravel mail class.

$ php kunsthåndverk: kontroller EmailController

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

$ php kunsthåndverk: mail sendingEmail

Opprett en visningsfil med navnet mailsend.blad.php med følgende kode for å vise kontaktskjemaet.




Kontakt oss skjema












Kontakt oss




@if (antall ($ feil)> 0)



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

  • @endforeach


@slutt om
@if ($ message = Session :: get ('suksess'))


$ melding

@slutt om



csrf_field ()


















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

navneområde App \ Http \ Controllers;
bruk Illuminate \ Http \ Request;
bruk Illuminate \ Support \ Facades \ Mail;
bruk App \ Mail \ sendingEmail;
klasse EmailController utvider Controller

funksjonsindeks ()

returvisning ('emailsend');

funksjon send (Be om $ forespørsel)

$ dette-> valider ($ forespørsel, [
'name' => 'obligatorisk',
'email' => 'obligatorisk | e-post',
'message' => 'obligatorisk'
]);
$ data = array (
'navn' => $ forespørsel-> navn,
'melding' => $ forespørsel-> melding
);
Mail :: til ('E-postadresse for mottaker') -> send (ny sendingEmail ($ data));
gå tilbake () -> med ('suksess', 'Takk for at du kontaktet oss!');

Åpne sendingEmail klasse og endre koden med følgende kode. E-postemnet er definert inne i bygge() metoden og email_template visning brukes til å formatere e-postinnholdet, opprettet i neste trinn. Verdiene overført fra EmailController lagres i $ e-post objekt og sendes i email_template utsikt.

navnerom App \ Mail;
bruk Illuminate \ Bus \ Queueable;
bruk Illuminate \ Contracts \ Queue \ ShouldQueue;
bruk Illuminate \ Mail \ Mailable;
bruk Illuminate \ Queue \ SerializesModels;
class sendingEmail utvider Mailable

bruk kø, SerializesModels;
/ **
* Opprett en ny meldingsforekomst.
*
* @ retur ugyldig
* /
offentlige $ e-poster;
offentlig funksjon __construct ($ e-post)

$ this-> emails = $ emails;

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

returner $ dette-> emnet ('Melding fra besøkende')
-> vis ('email_template')
-> med ('emails', $ this-> emails);

Opprett malvisningsfilen med navnet email_template.blad.php med følgende kode for å sende den formaterte e-posten til avsenderen. Verdiene overført fra sendingEmail klasse brukes i denne malen.

Hallo,
jeg er $ emails ['name']


Spørsmålet mitt handler om følgende emne:


$ emails ['message'].


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

Nå åpner du nett.php fil og legg til følgende rutekode for å åpne kontaktskjemaet og sende e-posten.

Rute :: get ('/ contact', '[email protected]');
Rute :: post ('/ sendemail / send', '[email protected]');

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

http: // localhost / laravelpro / public / contact

Fyll ut skjemaet og klikk på Sende melding knappen for å sende innholdet i skjemaet til sende() metoden for EmailController klasse.

Hvis e-posten er sendt vellykket, vil du få suksessmeldingen, som vist på bildet nedenfor.

Åpne nå Gmail-kontoen du brukte til å sende en e-post i sende() metoden for EmailController klasse. Hvis du åpner e-posten, får du følgende e-postinnhold, generert ved hjelp av en email_template vis filen.

Videoopplæring

Konklusjon

Det finnes flere måter i Laravel-rammeverket for å sende en e-post. Den enkleste og enkleste måten å sende e-post i Laravel vises i denne veiledningen. 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-postoppgaven testes ved å kjøre koden fra den lokale serveren. Denne opplæringen viser bare HTML-formaterte e-postoppgaver. Du kan også utføre andre oppgaver, for eksempel filvedlegg, avsendernavn osv., ved å bruke andre metoder for Post klasse.

Hvordan utvikle et spill på Linux
For et tiår siden ville ikke mange Linux-brukere forutsi at deres favorittoperativsystem en dag ville være en populær spillplattform for kommersielle ...
Åpne kildeporter for kommersielle spillmotorer
Gratis, åpen kildekode og plattformspillmotorrekreasjoner kan brukes til å spille gamle så vel som noen av de ganske nylige spilletitlene. Denne artik...
Beste kommandolinjespill for Linux
Kommandolinjen er ikke bare din største allierte når du bruker Linux, den kan også være kilden til underholdning fordi du kan bruke den til å spille m...