Heim > Backend-Entwicklung > PHP-Tutorial > Dynamische Mailerkonfiguration in Laravel mit Mail :: Build

Dynamische Mailerkonfiguration in Laravel mit Mail :: Build

Karen Carpenter
Freigeben: 2025-03-06 02:30:09
Original
910 Leute haben es durchsucht

Dynamic Mailer Configuration in Laravel with Mail::build

Nutzen Sie Laravels Mail::build für die dynamische Mailer -Konfiguration! Dieser flexible Ansatz vereinfacht das E -Mail -Setup in verschiedenen Szenarien.

Grundnutzung

Erstellen eines dynamischen Mailer ist einfach:

use Illuminate\Support\Facades\Mail;

$mailer = Mail::build([
    'transport' => 'smtp',
    'host' => '127.0.0.1',
    'port' => 587,
    'encryption' => 'tls',
    'username' => 'usr',
    'password' => 'pwd',
    'timeout' => 5,
]);

$mailer->send($mailable);
Nach dem Login kopieren

reale Anwendung: Multi-Tenant-Setup

Betrachten Sie eine Multi-Mieter-Anwendung:

class TenantMailService
{
    public function sendWithTenantConfig(Tenant $tenant, Mailable $mailable)
    {
        $mailerConfig = $tenant->email_settings;

        $mailer = Mail::build([
            'transport' => 'smtp',
            'host' => $mailerConfig->smtp_host,
            'port' => $mailerConfig->smtp_port,
            'encryption' => $mailerConfig->encryption,
            'username' => decrypt($mailerConfig->username),
            'password' => decrypt($mailerConfig->password),
            'from' => [
                'address' => $tenant->email,
                'name' => $tenant->company_name,
            ],
        ]);

        try {
            $mailer->send($mailable);
            Log::info("Email sent for tenant: {$tenant->id}", ['mailable' => get_class($mailable)]);
        } catch (Exception $e) {
            Log::error("Email failed for tenant: {$tenant->id}", ['error' => $e->getMessage()]);
            throw $e;
        }
    }
}

// Usage within a controller
class NewsletterController extends Controller
{
    public function send(Tenant $tenant, TenantMailService $mailService)
    {
        $newsletter = new TenantNewsletter($tenant);
        $mailService->sendWithTenantConfig($tenant, $newsletter);
        return back()->with('success', 'Newsletter queued!');
    }
}
Nach dem Login kopieren

Diese Methode ist ideal für Anwendungen mit mehreren Mietern, benutzerdefinierten E-Mail-Anbietern oder in jeder Situation, die Laufzeit-E-Mail-Konfigurationsanpassungen erfordert.

Das obige ist der detaillierte Inhalt vonDynamische Mailerkonfiguration in Laravel mit Mail :: Build. 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