Nastavenie a konfigurácia SMTP
Otvor .env súbor z koreňového priečinka projektu Laravel a nastavte konfiguráciu podľa svojho účtu Gmail. Musíte povoliťMenej bezpečná aplikácia”Možnosť vášho účtu Gmail na odoslanie e-mailu pomocou servera Gmail SMTP.
MAIL_MAILER = smtpMAIL_HOST = smtp.gmail.com
MAIL_PORT = 465
MAIL_USERNAME = YOUR_EMAIL_ADDRESS
MAIL_PASSWORD = VAŠE_PASSWORD
MAIL_ENCRYPTION = ssl
***Poznámka:
Počas odosielania e-mailov pomocou servera účtov SMTP Gmail sa môže zobraziť chyba overenia SMTP. Otvor StreamBuffer.php súbor z nasledujúceho umiestnenia.
/ var / www / html / laravelpro / vendor / swiftmailer / swiftmailer /lib / classes / Swift / Transport / StreamBuffer.php
Nájdite a vymeňte riadok 259 nasledujúcim riadkom na overenie servera Gmail SMTP.
$ options ['ssl'] = pole ('verify_peer' => false, 'verify_peer_name' => false,'allow_self_signed' => true);
Posielanie e-mailov pomocou protokolu SMTP
Vykonajte nasledujúce kroky na odoslanie e-mailu pomocou kontaktného formulára vytvorením kontrolóra, zobrazenia a triedy pošty.
Kroky:
Spustením nasledujúceho príkazu z terminálu vytvorte EmailController zobraziť kontaktný formulár a poslať e-mail pomocou poštovej triedy Laravel.
$ php remeselník make: kontrolór EmailControllerSpustením nasledujúceho príkazu vytvorte triedu pošty s názvom zasielanieEmail. Týmto sa vytvorí trieda pod App \ Mail priečinok.
$ php remeselník make: zasielanie poštyEmailVytvorte súbor zobrazenia s názvom odoslať e-mailom.čepeľ.php s nasledujúcim kódom na zobrazenie kontaktného formulára.
Kontaktuj nás
@if (počet (chyby v $)> 0)
- $ error
@foreach ($ errors-> all () ako $ error)
@endforeach
@koniec Ak
@if ($ message = Session :: get ('success'))
$ message
@koniec Ak
Otvorené EmailController a upravte kód pomocou nasledujúceho kódu. The Mail fasáda a zasielanieEmail poštové triedy sa importujú na začiatok súboru. Tu je index () metóda načíta súbor zobrazenia v prehliadači na zobrazenie kontaktného formulára. Po odoslaní formulára poslať () metóda sa bude volať. Táto metóda overí formulár pomocou overovacích pravidiel. The $ údaje pole sa používa na zasielanie hodnôt súboru názov a správa polia do zasielanieEmail trieda. Ďalej sa e-mail odošle pomocou Mail fasáda. V. Musíte nastaviť platnú e-mailovú adresu prijímača do () pred vykonaním kódu. Ak sa e-mail úspešne odošle, vytlačí sa správa o úspechu.
menný priestor App \ Http \ Controllers;použite Illuminate \ Http \ Request;
použite Illuminate \ Support \ Fasády \ Mail;
používať App \ Mail \ sendEmail;
trieda EmailController rozširuje radič
index funkcií ()
spätné zobrazenie ('emailsend');
funkcia send (Request $ request)
$ this-> overiť ($ request, [
'name' => 'povinné',
'email' => 'povinný | e-mail',
'message' => 'povinný'
]);
$ data = pole (
'name' => $ request-> meno,
'message' => $ request-> správa
);
Mail :: to ('E-mailová adresa príjemcu') -> send (nové zaslanieEmail ($ data));
návrat späť () -> s ('úspech', 'Ďakujeme, že ste nás kontaktovali!');
Otvor zasielanieEmail triedy a upravte kód nasledujúcim kódom. Predmet e-mailu je definovaný vo vnútri build () metóda a email_template view slúži na formátovanie obsahu e-mailu vytvoreného v ďalšom kroku. Hodnoty odovzdané z EmailController sú uložené v $ email objektu a sú odovzdané v email_template vyhliadka.
menný priestor App \ Mail;použitie Illuminate \ Bus \ Queueable;
použite Illuminate \ Contracts \ Queue \ ShouldQueue;
použite Illuminate \ Mail \ Mailable;
použite Illuminate \ Queue \ SerializesModels;
trieda odosielaniaEmail rozširuje možnosti správy
používať Queueable, SerializesModels;
/ **
* Vytvorte novú inštanciu správy.
*
* @return neplatné
* /
verejné $ e-maily;
verejná funkcia __construct ($ e-maily)
$ this-> emails = $ emails;
/ **
* Vytvorte správu.s
*
* @ návrat $ this
* /
zostavenie verejnej funkcie ()
vrátiť $ this-> subject ('Správa od návštevníka')
-> view ('email_template')
-> with ('emails', $ this-> emails);
Vytvorte súbor zobrazenia šablóny s názvom email_template.čepeľ.php s nasledujúcim kódom na odoslanie formátovaného e-mailu odosielateľovi. Hodnoty odovzdané z zasielanieEmail triedy sú použité v tejto šablóne.
Ahoj,
som $ emails ['name']
Moja otázka sa týka nasledujúcej témy:
$ emails ['message'].
Bude užitočné, keď mi čoskoro odpoviete.Ďakujem.
Teraz otvorte web.php a pridajte nasledujúci smerový kód, aby ste otvorili kontaktný formulár a poslali e-mail.
Route :: get ('/ contact', '[email protected]');Route :: post ('/ sendemail / send', '[email protected]');
Spustením nasledujúcej adresy URL z prehliadača načítajte kontaktný formulár.
http: // localhost / laravelpro / public / contact
Vyplňte formulár a kliknite na ikonu Poslať správu tlačidlo na odoslanie obsahu formulára do poslať () metóda EmailController trieda.
Ak je e-mail úspešne odoslaný, dostanete správu o úspechu, ako je znázornené na nasledujúcom obrázku.
Teraz otvorte účet Gmail, ktorý ste použili na odoslanie e-mailu, v priečinku poslať () metóda EmailController trieda. Ak otvoríte e-mail, získate nasledujúci obsah e-mailu vygenerovaný pomocou email_template zobraziť súbor.
Výukový program pre video
Záver
V rámci Laravelu existuje niekoľko spôsobov odosielania e-mailov. Najjednoduchší a najjednoduchší spôsob odosielania e-mailov v aplikácii Laravel je uvedený v tomto výučbe. Ak máte účet Gmail, môžete ľahko poslať e-mail podľa pokynov uvedených v tejto príručke. Na odosielanie e-mailov sa tu používa server Gmail SMTP a úloha odosielania e-mailov sa testuje spustením kódu z miestneho servera. Tento výukový program zobrazuje iba úlohy odosielania e-mailov vo formáte HTML. Môžete tiež vykonávať ďalšie úlohy, napríklad prílohu k súboru, meno odosielateľa atď., použitím iných metód Mail trieda.