laravel

Siųskite el. Laiškus „Laravel“ naudodami SMTP

Siųskite el. Laiškus „Laravel“ naudodami SMTP
Laiško siuntimas yra įprastas bet kurios žiniatinklio programos reikalavimas. Kai kurie bendrieji el. Laiškų siuntimo būdai yra vartotojo registracijos tikrinimas, vartotojų atsiliepimų gavimas, galimybių susisiekti su svetainės administratoriumi suteikimas ir kt. „Laravel“ sistemoje yra keli paketai, skirti el. Laiškams siųsti iš „Laravel“ projekto. SMTP, „Mailgun“, „Postmark“ ir „Amazon“ SES „Laravel“ naudojami paprastiems, operaciniams ir masiniams el. Laiškams siųsti. „Laravel“ turi el. Laiškus siunčiančią biblioteką pavadinimu „SwiftMailer“, kad galėtų siųsti el. Laišką su el. Pašto šablonu. Ši pamoka parodo, kaip siųsti paprastą el. Laišką naudojant SMTP.

SMTP sąranka ir konfigūracija

Atidaryk .env failą iš „Laravel“ projekto šakninio aplanko ir nustatykite konfigūraciją pagal savo „Gmail“ paskyrą. Turite įjungtiMažiau saugi programa„Gmail“ paskyros parinktis siųsti el. Laišką naudojant „Gmail“ SMTP serverį.

PAŠTAS_MAILER = smtp
MAIL_HOST = smtp.gmail.com
PAŠTAS_PORTAS = 465
MAIL_USERNAME = JŪSŲ_EMAIL_ADDRESS
MAIL_PASSWORD = JŪSŲ_PASSWORD
MAIL_ENCRYPTION = ssl

*** Pastaba:

Galite gauti SMTP autentifikavimo klaidą siųsdami el. Laiškus naudodami „SMTP Gmail“ paskyros serverį. Atidaryk „StreamBuffer“.php failą iš šios vietos.

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

Raskite ir pakeiskite liniją 259 su šia eilute autentifikuoti „Gmail“ SMTP serverį.

$ options ['ssl'] = masyvas ('patikrinti_peer' => klaidinga, 'patvirtinti_peer_pavadinimas' => klaidinga,
'allow_self_signed' => tiesa);

Laiškų siuntimas naudojant SMTP

Atlikite šiuos veiksmus, norėdami siųsti el. Laišką naudodami kontaktinę formą, sukurdami valdiklį, rodinį ir pašto klasę.

Veiksmai:

Norėdami sukurti, paleiskite šią komandą iš terminalo „EmailController“ parodyti kontaktinę formą ir siųsti el. laišką naudojant „Laravel“ pašto klasę.

amatininkas $ php: kontroleris EmailController

Paleiskite šią komandą, kad sukurtumėte pašto klasę siuntimasEmail. Tai sukurs klasę pagal Programa \ Paštas aplanką.

amatininkas $ php: paštas siuntimasEmail

Sukurkite rodinio failą pavadinimu el. laiškas.ašmenys.php su šiuo kodu, kad būtų rodoma kontakto forma.




Susisiekite su mumis forma












Susisiekite su mumis




@if (skaičius ($ klaidos)> 0)



    @foreach ($ klaidos-> visos () kaip $ klaida)
  • $ $

  • @endforeach


@endif
@if ($ message = Session :: get ('sėkmė'))


$ $

@endif



csrf_field ()


















Atviras „EmailController“ ir pakeiskite kodą tokiu kodu. The Paštas fasadas ir siuntimasEmail pašto klasės importuojamos failo pradžioje. Čia, indeksas() metodas įkelia peržiūros failą į naršyklę, kad būtų rodoma kontakto forma. Pateikę formą, siųsti () metodas bus vadinamas. Šis metodas patvirtins formą naudodamas patvirtinimo taisykles. The $ duomenų masyvas naudojamas siųsti reikšmes vardas ir pranešimą laukus į siuntimasEmail klasė. Tada el. Laiškas siunčiamas naudojant Paštas fasadas. Turite nustatyti galiojantį gavėjo el. Pašto adresą iki () prieš vykdant kodą. Jei el. Laiškas bus sėkmingai išsiųstas, bus atsispausdintas sėkmingas pranešimas.

vardų srities programa \ Http \ valdikliai;
naudoti Illuminate \ Http \ Request;
naudokite „Illuminate \ Support“ Facades \ Mail;
naudoti „App \ Mail \ sendEmail“;
klasės „EmailController“ išplečia valdiklį

funkcijos indeksas ()

grįžimo vaizdas ('emailsend');

funkcija siųsti (užklausa $ užklausa)

$ this-> patvirtinti ($ request, [
'vardas' => 'būtinas',
'email' => 'reikalingas | el. paštas',
'message' => 'būtina'
]);
$ data = masyvas (
'vardas' => $ prašymas-> vardas,
'message' => $ request-> pranešimas
);
Paštas :: į ('Gavėjo el. Pašto adresas') -> siųsti (naujas siuntimo el. Paštas ($ duomenys));
grįžti atgal () -> su ('sėkmė', 'ačiū, kad susisiekėte su mumis!');

Atidaryk siuntimasEmail klasę ir pakeiskite kodą tokiu kodu. El. Pašto tema apibrėžiama statyti () metodas ir email_template rodinys naudojamas formuojant el. pašto turinį, sukurtą kitame žingsnyje. Vertės, perduotos iš „EmailController“ yra saugomi $ el objektas ir yra perduodami email_template vaizdas.

vardų sritis App \ Mail;
naudokite „Illuminate \ Bus \ Queueable“;
naudokite „Illuminate \ Contracts \ Queue“ „ShouldQueue“;
naudokite „Illuminate \ Mail \ Mailable“;
naudoti „Illuminate \ Queue \ SerializesModels“;
klasės sendEmail pratęsia „Mailable“

naudoti „Queueable“, „SerializesModels“;
/ **
* Sukurkite naują pranešimo egzempliorių.
*
* @return negalioja
* /
vieši $ el. laiškai;
viešoji funkcija __construct ($ el. laiškai)

$ this-> emails = $ emails;

/ **
* Sukurkite pranešimą.s
*
* @return $ tai
* /
viešosios funkcijos kūrimas ()

grąžinti $ this-> subject ('Pranešimas iš lankytojo')
-> rodinys ('email_template')
-> su ('el. laiškai', $ tai-> el. laiškai);

Sukurkite šablono rodinio failą pavadinimu email_template.ašmenys.php su šiuo kodu, kad išsiųstumėte suformatuotą el. laišką siuntėjui. Vertės, perduotos iš siuntimasEmail klasės naudojamos šiame šablone.

Sveiki,
Aš esu $ $ emails ['name']


Mano užklausa susijusi su šia tema:


$ $ emails ['message'].


Tai bus naudinga, jei man greitai atsakysite.Ačiū.

Dabar atidarykite internetas.php failą ir pridėkite šį maršruto kodą, kad atidarytumėte kontaktinę formą ir išsiųstumėte el. laišką.

Maršrutas :: get ('/ contact', '[email protected]');
Route :: post ('/ sendemail / send', '[email protected]');

Norėdami įkelti kontakto formą, paleiskite šį URL iš naršyklės.

http: // localhost / laravelpro / public / contact

Užpildykite formą ir spustelėkite Siųsti žinutę mygtuką, norėdami išsiųsti formos turinį į siųsti () metodas „EmailController“ klasė.

Jei el. Laiškas išsiųstas sėkmingai, gausite sėkmės pranešimą, kaip parodyta kitame paveikslėlyje.

Dabar atidarykite „Gmail“ paskyrą, kurią naudojote siunčiant el. Laišką siųsti () metodas „EmailController“ klasė. Jei atidarysite el. Laišką, gausite šį el. Pašto turinį, sugeneruotą naudojant email_template Peržiūrėti failą.

Vaizdo įrašų pamoka

Išvada

„Laravel“ sistemoje yra keli būdai, kaip siųsti el. Laišką. Paprasčiausias ir paprasčiausias būdas siųsti el. Laiškus „Laravel“ yra pateiktas šioje pamokoje. Jei turite „Gmail“ paskyrą, atlikdami šioje pamokoje nurodytus veiksmus galite lengvai nusiųsti el. Laišką. „Gmail“ SMTP serveris čia naudojamas el. Laiškams siųsti, o el. Laiškų siuntimo užduotis išbandoma vykdant kodą iš vietinio serverio. Šioje pamokoje rodomos tik HTML formatu siunčiamos el. Pašto užduotys. Taip pat galite atlikti kitas užduotis, pvz., Failo priedą, siuntėjo vardą ir kt., naudojant kitus metodus Paštas klasė.

„Vulkan“, skirta „Linux“ vartotojams
Kiekvienos naujos kartos grafikos plokštės matome, kaip žaidimų kūrėjai peržengia grafinės ištikimybės ribas ir artėja prie fotorealizmo. Nepaisant vi...
„OpenTTD“ ir „Simutrans“
Sukurti savo transporto modeliavimą gali būti smagu, atpalaiduojanti ir be galo viliojanti. Štai kodėl jūs turite įsitikinti, kad išbandėte kuo daugia...
„OpenTTD“ pamoka
„OpenTTD“ yra vienas iš populiariausių verslo modeliavimo žaidimų. Šiame žaidime turite sukurti nuostabų transporto verslą. Tačiau pradėsite nuo mažda...