Nastavení a konfigurace SMTP
Otevři .env soubor z kořenové složky projektu Laravel a nastavte konfiguraci podle svého účtu Gmail. Musíte povolitMéně zabezpečená aplikace”Možnost vašeho účtu Gmail odeslat e-mail pomocí serveru SMTP služby Gmail.
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:
Při odesílání e-mailů pomocí serveru účtů SMTP Gmail se může zobrazit chyba ověření SMTP. Otevři StreamBuffer.php soubor z následujícího umístění.
/ var / www / html / laravelpro / prodejce / swiftmailer / swiftmailer /lib / classes / Swift / Transport / StreamBuffer.php
Najděte a vyměňte řádek 259 s následujícím řádkem k ověření serveru SMTP služby Gmail.
$ options ['ssl'] = pole ('verify_peer' => false, 'verify_peer_name' => false,'allow_self_signed' => true);
Odesílání e-mailů pomocí protokolu SMTP
Pomocí následujících kroků odešlete e-mail pomocí kontaktního formuláře vytvořením kontroleru, zobrazení a třídy pošty.
Kroky:
Spuštěním následujícího příkazu z terminálu vytvořte EmailController zobrazit kontaktní formulář a odeslat e-mail pomocí třídy pošty Laravel.
$ php artisan make: controller EmailControllerSpuštěním následujícího příkazu vytvořte třídu pošty s názvem zasíláníEmail. Tím se vytvoří třída pod App \ Mail složku.
$ php řemeslník make: mail mailEmailVytvořte soubor pohledu s názvem odeslat e-mailem.čepel.php s následujícím kódem pro zobrazení kontaktního formuláře.
Kontaktujte nás
@if (počet (chyby $)> 0)
- $ error
@foreach ($ errors-> all () jako $ error)
@endforeach
@endif
@if ($ message = Session :: get ('success'))
$ message
@endif
Otevřeno EmailController a upravte kód pomocí následujícího kódu. The Pošta fasáda a zasíláníEmail třídy pošty se importují na začátek souboru. Tady index() metoda načte soubor zobrazení v prohlížeči a zobrazí kontaktní formulář. Po odeslání formuláře se zobrazí poslat() metoda bude volána. Tato metoda ověří formulář pomocí ověřovacích pravidel. The $ data pole se používá k odeslání hodnot souboru název a zpráva pole do zasíláníEmail třída. Dále je e-mail odeslán pomocí Pošta fasáda. Musíte zadat platnou e-mailovou adresu příjemce v na() funkce před spuštěním kódu. Pokud se e-mail odešle úspěšně, vytiskne se zpráva o úspěchu.
jmenný prostor App \ Http \ Controllers;použijte Illuminate \ Http \ Request;
použijte Illuminate \ Support \ Fasády \ Mail;
použijte App \ Mail \ sendEmail;
třída EmailController rozšiřuje Controller
index funkce ()
zpětné zobrazení ('emailsend');
funkce odeslat (požadavek $ požadavek)
$ this-> validate ($ request, [
'name' => 'required',
'email' => 'required | email',
'message' => 'required'
]);
$ data = pole (
'name' => $ request-> name,
'message' => $ request-> zpráva
);
Mail :: to ('Receiver Email Address') -> send (new sendingEmail ($ data));
návrat zpět () -> s ('úspěch', 'Děkujeme, že jste nás kontaktovali!');
Otevři zasíláníEmail třídy a upravte kód pomocí následujícího kódu. Předmět e-mailu je definován uvnitř stavět() metoda a email_template view slouží k formátování obsahu e-mailu vytvořeného v dalším kroku. Hodnoty předané z EmailController jsou uloženy v $ email objekt a jsou předány v email_template Pohled.
jmenný prostor App \ Mail;použijte Illuminate \ Bus \ Queueable;
použijte Illuminate \ Contracts \ Queue \ ShouldQueue;
použijte Illuminate \ Mail \ Mailable;
použijte Illuminate \ Queue \ SerializesModels;
Třída odesílání e-mailů rozšiřuje Mailable
používat Queueable, SerializesModels;
/ **
* Vytvořte novou instanci zprávy.
*
* @return void
* /
veřejné $ e-maily;
veřejná funkce __construct ($ e-maily)
$ this-> emails = $ emails;
/ **
* Sestavte zprávu.s
*
* @return $ this
* /
veřejná funkce build ()
vrátit $ this-> předmět ('Zpráva od návštěvníka')
-> view ('email_template')
-> with ('emails', $ this-> emails);
Vytvořte soubor zobrazení šablony s názvem email_template.čepel.php s následujícím kódem k odeslání formátovaného e-mailu odesílateli. Hodnoty předané z zasíláníEmail třídy jsou použity v této šabloně.
Ahoj,
jsem $ e-maily ['name']
Můj dotaz se týká následujícího tématu:
$ emails ['message'].
Bude užitečné, pokud mi brzy odpovíte.Děkuju.
Nyní otevřete web.php do souboru a přidáním následujícího kódu trasy otevřete kontaktní formulář a odešlete e-mail.
Route :: get ('/ contact', '[email protected]');Route :: post ('/ sendemail / send', '[email protected]');
Spusťte následující adresu URL z prohlížeče a načtěte kontaktní formulář.
http: // localhost / laravelpro / public / contact
Vyplňte formulář a klikněte na Poslat zprávu tlačítko pro odeslání obsahu formuláře do poslat() metoda EmailController třída.
Pokud je e-mail úspěšně odeslán, obdržíte zprávu o úspěchu, jak je znázorněno na následujícím obrázku.
Nyní otevřete účet Gmail, který jste použili k odeslání e-mailu v poslat() metoda EmailController třída. Pokud otevřete e-mail, získáte následující obsah e-mailu vygenerovaný pomocí email_template prohlédnout soubor.
Výukový program pro video
Závěr
V rámci Laravelu existuje několik způsobů odesílání e-mailů. Nejjednodušší a nejjednodušší způsob odesílání e-mailů v Laravelu je uveden v tomto výukovém programu. Pokud máte účet Gmail, můžete snadno poslat e-mail podle pokynů uvedených v tomto kurzu. Zde se k odesílání e-mailů používá server SMTP služby Gmail a úloha odesílání e-mailů se testuje spuštěním kódu z místního serveru. Tento výukový program zobrazuje pouze úkoly odesílání e-mailů ve formátu HTML. Můžete také provádět další úkoly, například přílohu souboru, jméno odesílatele atd., použitím jiných metod Pošta třída.