laravel

Posielajte e-maily v Laravelu pomocou SMTP

Posielajte e-maily v Laravelu pomocou SMTP
Odosielanie e-mailov je bežnou požiadavkou každej webovej aplikácie. Medzi bežné spôsoby odosielania e-mailov patrí overovanie registrácie používateľov, získavanie spätnej väzby od používateľov, možnosti kontaktovania správcu stránok atď. Rámec Laravel obsahuje niekoľko balíkov na odosielanie e-mailov z projektu Laravel. SMTP, Mailgun, Postmark a Amazon SES sa používajú v Laravelu na odosielanie jednoduchých, transakčných a hromadných e-mailov. Laravel má knižnicu na odosielanie e-mailov s názvom SwiftMailer na odosielanie e-mailov so šablónou e-mailu. Tento tutoriál vám ukáže, ako poslať jednoduchý e-mail pomocou protokolu SMTP.

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 = smtp
MAIL_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 EmailController

Spustení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štyEmail

Vytvorte súbor zobrazenia s názvom odoslať e-mailom.čepeľ.php s nasledujúcim kódom na zobrazenie kontaktného formulára.




Kontaktujte nás












Kontaktuj nás




@if (počet (chyby v $)> 0)



    @foreach ($ errors-> all () ako $ error)
  • $ error

  • @endforeach


@koniec Ak
@if ($ message = Session :: get ('success'))


$ message

@koniec Ak



csrf_field ()


















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.

Hry Ako používať GameConqueror Cheat Engine v Linuxe
Ako používať GameConqueror Cheat Engine v Linuxe
Tento článok obsahuje sprievodcu používaním cheatovacieho modulu GameConqueror v systéme Linux. Mnoho používateľov, ktorí hrajú hry v systéme Windows,...
Hry Najlepšie emulátory herných konzol pre systém Linux
Najlepšie emulátory herných konzol pre systém Linux
V tomto článku je uvedený zoznam populárneho softvéru na emuláciu herných konzol, ktorý je k dispozícii pre systém Linux. Emulácia je vrstva kompatibi...
Hry Najlepšie linuxové distribúcie pre hry v roku 2021
Najlepšie linuxové distribúcie pre hry v roku 2021
Operačný systém Linux prešiel dlhou cestou od svojho originálneho, jednoduchého serverového vzhľadu. Tento OS sa za posledné roky nesmierne vylepšil a...