Heim > Backend-Entwicklung > PHP-Tutorial > So senden Sie E -Mails in Laravel

So senden Sie E -Mails in Laravel

Joseph Gordon-Levitt
Freigeben: 2025-03-07 01:15:24
Original
186 Leute haben es durchsucht

How to Send Emails in Laravel

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
Nach dem Login kopieren

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']);
    }
}
Nach dem Login kopieren

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));
    }
}
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage