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 = smtpMAIL_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 EmailControllerKjør følgende kommando for å opprette en e-postklasse som heter sendingEmail. Dette vil skape klassen under App \ Mail mappe.
$ php kunsthåndverk: mail sendingEmailOpprett en visningsfil med navnet mailsend.blad.php med følgende kode for å vise kontaktskjemaet.
Kontakt oss
@if (antall ($ feil)> 0)
- $ error
@foreach ($ feil-> alle () som $ feil)
@endforeach
@slutt om
@if ($ message = Session :: get ('suksess'))
$ melding
@slutt om
Å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.