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

Dynamische Mailerkonfiguration in Laravel mit Mail :: Build

Karen Carpenter
Karen CarpenterOriginal
2025-03-06 02:30:09903Durchsuche

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);

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!');
    }
}

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!

Stellungnahme:
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
Vorheriger Artikel:So behebenNächster Artikel:So beheben