Postavljanje i konfiguracija SMTP-a
Otvori .env datoteku iz korijenske mape projekta Laravel i postavite konfiguraciju prema vašem Gmail računu. Morate omogućiti "Manje sigurna aplikacija"Opcija vašeg Gmail računa za slanje e-pošte putem Gmail SMTP poslužitelja.
MAIL_MAILER = smtpMAIL_HOST = smtp.gmail.com
MAIL_PORT = 465
MAIL_USERNAME = YOUR_EMAIL_ADDRESS
MAIL_PASSWORD = VAŠA_PASSWORD
MAIL_ENCRYPTION = ssl
***Bilješka:
Možda ćete primiti pogrešku SMTP provjere autentičnosti tijekom slanja e-pošte putem SMTP poslužitelja Gmail računa. Otvori StreamBuffer.php datoteku sa sljedećeg mjesta.
/ var / www / html / laravelpro / vendor / swiftmailer / swiftmailer /lib / classes / Swift / Transport / StreamBuffer.php
Pronađi i zamijeni liniju 259 sljedećim redom za provjeru autentičnosti Gmail SMTP poslužitelja.
$ options ['ssl'] = array ('verify_peer' => false, 'verify_peer_name' => false,'allow_self_signed' => true);
Slanje e-pošte pomoću SMTP-a
Izvršite sljedeće korake za slanje e-pošte pomoću obrasca za kontakt stvaranjem kontrolera, prikaza i klase pošte.
Koraci:
Pokrenite sljedeću naredbu s terminala za stvaranje EmailController za prikaz obrasca za kontakt i slanje e-pošte pomoću klase pošte Laravel.
$ php artisan make: kontroler EmailControllerPokrenite sljedeću naredbu da biste stvorili klasu pošte s imenom slanjeE-maila. Ovo će stvoriti razred pod App \ Mail mapu.
$ php artisan make: slanje pošteEmailStvorite datoteku prikaza s imenom e-mail.oštrica.php sa sljedećim kodom za prikaz obrasca za kontakt.
Kontaktirajte nas
@if (count ($ pogrešaka)> 0)
- $ pogreška
@foreach ($ error-> all () kao $ error)
@endforeach
@završi ako
@if ($ message = Session :: get ('uspjeh'))
$ poruka
@završi ako
Otvorena EmailController i izmijenite kod sljedećim kodom. The Mail fasada i slanjeE-maila klase pošte uvoze se na početku datoteke. Evo, indeks() metoda učitava datoteku prikaza u preglednik za prikaz obrasca za kontakt. Nakon podnošenja obrasca, poslati() pozvat će se metoda. Ova će metoda provjeriti valjanost obrasca pomoću pravila provjere valjanosti. The $ podataka polje se koristi za slanje vrijednosti Ime i poruka polja u slanjeE-maila razred. Dalje, e-pošta se šalje pomoću Mail fasada. Morate postaviti važeću e-adresu primatelja u do() prije izvršavanja koda. Ako se e-pošta uspješno pošalje, ispisat će se poruka o uspjehu.
prostor imena App \ Http \ Controllers;koristite Illuminate \ Http \ Request;
koristite Illuminate \ Support \ Facades \ Mail;
koristiti App \ Mail \ sendEmail;
klasa EmailController proširuje Controller
indeks funkcije ()
povratni prikaz ('emailsend');
slanje funkcije (zatraži $ zahtjev)
$ this-> validate ($ zahtjev, [
'name' => 'potrebno',
'email' => 'obavezno | email',
'message' => 'potrebno'
]);
$ podataka = niz (
'name' => $ request-> name,
'message' => $ request-> poruka
);
Mail :: na ('Adresa e-pošte primatelja') -> pošalji (novi sendEmail ($ podaci));
return back () -> with ('success', 'Hvala što ste nas kontaktirali!');
Otvori slanjeE-maila klase i izmijenite kod sljedećim kodom. Predmet e-pošte definiran je unutar izgraditi() metoda i predložak_e-pošte pogled koristi se za formatiranje sadržaja e-pošte stvorenog u sljedećem koraku. Vrijednosti proslijeđene iz EmailController su pohranjeni u $ e-mail objekt i predaju se u predložak_e-pošte pogled.
prostor imena App \ Mail;koristite Illuminate \ Bus \ Queueable;
koristite Illuminate \ Contracts \ Queue \ ShouldQueue;
koristite Illuminate \ Mail \ Mavable;
koristite Illuminate \ Queue \ SerializesModels;
predavanje klaseEmail proširuje se Dostupno
koristiti Queueable, SerializesModels;
/ **
* Stvorite novu instancu poruke.
*
* @povratak prazan
* /
javne $ e-adrese;
javna funkcija __construct ($ e-pošte)
$ this-> e-mail = $ e-mail;
/ **
* Izgradite poruku.s
*
* @vrati $ ovo
* /
build javne funkcije ()
return $ this-> subject ('Poruka od posjetitelja')
-> pogled ('predložak_e-pošte')
-> with ('e-mailovi', $ this-> e-mailovi);
Stvorite datoteku prikaza predloška s imenom predložak_e-pošte.oštrica.php sa sljedećim kodom za slanje formatirane e-pošte pošiljatelju. Vrijednosti proslijeđene iz slanjeE-maila klase koriste se u ovom predlošku.
zdravo,
Ja sam $ e-adrese ['name']
Moj upit odnosi se na sljedeću temu:
$ e-adrese ['poruka'].
Bilo bi korisno ako mi uskoro odgovorite.Hvala vam.
Sada otvorite mreža.php datoteku i dodajte sljedeći kôd rute da biste otvorili obrazac za kontakt i poslali e-poštu.
Route :: get ('/ kontakt', '[zaštićen e-poštom]');Ruta :: post ('/ sendemail / send', '[e-mail zaštićen]');
Pokrenite sljedeći URL iz preglednika da biste učitali obrazac za kontakt.
http: // localhost / laravelpro / public / contact
Ispunite obrazac i kliknite na Pošalji poruku gumb za slanje sadržaja obrasca na poslati() metoda EmailController razred.
Ako je e-pošta uspješno poslana, dobit ćete poruku o uspjehu, kao što je prikazano na sljedećoj slici.
Sada otvorite Gmail račun koji ste koristili za slanje e-pošte u poslati() metoda EmailController razred. Ako otvorite e-poštu, dobit ćete sljedeći sadržaj e-pošte generiran pomoću predložak_e-pošte Pogledaj datoteku.
Video vodič
Zaključak
U okviru Laravel postoji više načina za slanje e-pošte. Najjednostavniji i najjednostavniji način slanja e-pošte u Laravelu prikazan je u ovom vodiču. Ako imate Gmail račun, tada lako možete poslati e-poštu slijedeći korake prikazane u ovom vodiču. Ovdje se za slanje e-pošte koristi Gmail SMTP poslužitelj, a zadatak slanja e-pošte testira se pokretanjem koda s lokalnog poslužitelja. Ovaj vodič prikazuje samo zadatke slanja e-pošte u HTML formatu. Također možete obavljati i druge zadatke, poput privitka datoteke, imena pošiljatelja itd., korištenjem drugih metoda Mail razred.