Dieses Tutorial untersucht die E -Mail -Funktionalität von Laravel und nutzt die Symfony Mailer -Komponente. Wir werden die Konfiguration abdecken, mailable Klassen erstellen und E -Mails senden, die in einem praktischen Beispiel gipfeln.
Konfiguration:
Laravel vereinfacht das E -Mail -Management durch einen Wrapper um Symfony Mailer. Die primäre Konfigurationsdatei lautet config/mail.php
. Diese Datei definiert Mailer (z. B. SMTP, Sendmail, Mailgun usw.) und deren Einstellungen. Der Standard -Mailer wird durch die Umgebungsvariable MAIL_MAILER
in .env
) angegeben.
Für SMTP müssen Sie in Ihrer MAIL_HOST
-Datei MAIL_PORT
, MAIL_ENCRYPTION
, MAIL_USERNAME
, MAIL_PASSWORD
und .env
konfigurieren. Der Treiber sendmail
erfordert das Einstellen des richtigen sendmail
-Pads in config/mail.php
. Die from
-Ade ist ebenfalls konfigurierbar. Dienste von Drittanbietern (Mailgun, Poststempel, SES) erfordern zusätzliche Einrichtung in config/services.php
.
Erstellen einer mailablen Klasse:
Eine mailbare Klasse erstellt eine E -Mail -Erstellung und Sende. Verwenden Sie den handwerklichen Befehl:
php artisan make:mail DemoEmail
Dies erzeugt eine DemoEmail
-Klasse in app/Mail/DemoEmail.php
. Eine typische mailable Klasse umfasst:
<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; class DemoEmail extends Mailable { use Queueable, SerializesModels; public $demo; public function __construct($demo) { $this->demo = $demo; } public function build() { return $this->from('sender@example.com') ->view('mails.demo') ->text('mails.demo_plain') ->with(['testVarOne' => '1', 'testVarTwo' => '2']) ->attach(public_path('/images/demo.jpg'), ['as' => 'demo.jpg', 'mime' => 'image/jpeg']); } }
Die __construct
-Methode initialisiert Daten, während build
E -Mail -Angaben (Absender, Ansicht, Anhänge usw.) festlegt. Erstellen Sie entsprechende Ansichtsdateien (resources/views/mails/demo.blade.php
und resources/views/mails/demo_plain.blade.php
).
Senden von E -Mails:
Ein Controller (z. B. MailController
) verwendet die Fassade Mail
, um E -Mails zu senden:
<?php namespace App\Http\Controllers; use App\Mail\DemoEmail; use Illuminate\Support\Facades\Mail; class MailController extends Controller { public function send() { $demoData = new \stdClass(); $demoData->demo_one = 'Demo Value 1'; $demoData->demo_two = 'Demo Value 2'; $demoData->sender = 'Sender Name'; $demoData->receiver = 'Receiver Name'; Mail::to("receiver@example.com")->send(new DemoEmail($demoData)); } }
Die Mail::to()->send()
-Methode sendet die E -Mail. Fügen Sie eine Route in routes/web.php
hinzu, um auf den Controller zuzugreifen.
zum Testen ohne tatsächlich Senden von E -Mails auf MAIL_DRIVER
auf log
in config/mail.php
festlegen, um E -Mails auf storage/logs/laravel.log
zu protokollieren.
Schlussfolgerung:
Laravels Mail -System, das auf Symfony Mailer basiert, bietet einen optimierten Ansatz für das E -Mail -Management. In diesem Tutorial wurde der Prozess von der Konfiguration zum Senden von E -Mails gezeigt und eine solide Grundlage für die Integration von E -Mail -Funktionen in Ihre Laravel -Anwendungen bietet. Erforschen Sie den Envato -Markt für weitere Laravel -Ressourcen.
Das obige ist der detaillierte Inhalt vonSo senden Sie E -Mails in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!