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 = smtpMAIL_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 EmailControllerPaleiskite šią komandą, kad sukurtumėte pašto klasę siuntimasEmail. Tai sukurs klasę pagal Programa \ Paštas aplanką.
amatininkas $ php: paštas siuntimasEmailSukurkite rodinio failą pavadinimu el. laiškas.ašmenys.php su šiuo kodu, kad būtų rodoma kontakto forma.
Susisiekite su mumis
@if (skaičius ($ klaidos)> 0)
- $ $
@foreach ($ klaidos-> visos () kaip $ klaida)
@endforeach
@endif
@if ($ message = Session :: get ('sėkmė'))
$ $
@endif
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ė.