notificationType = $type; $this->unsubscribeUrl = URL::signedRoute('email-preferences.unsubscribe', [ 'user' => $user->id, 'type' => $type->value, ]); } /** * Abmeldung für Empfänger ohne Konto (Roadmap 1d.3): Pressekontakt oder * Firmen-E-Mail einer API-Meldung. Der Link trägt die Adresse selbst — * ein Konto-Link würde den Einlieferer abmelden, nicht den Empfänger. */ protected function configureAddressUnsubscribe(string $email, EmailNotificationType $type): void { $this->notificationType = $type; $this->unsubscribeUrl = URL::signedRoute('email-preferences.unsubscribe-address', [ 'email' => mb_strtolower(trim($email)), 'type' => $type->value, ]); } public function headers(): Headers { return new Headers(text: array_filter([ 'List-Unsubscribe' => '<'.$this->unsubscribeUrl.'>', 'List-Unsubscribe-Post' => 'List-Unsubscribe=One-Click', // Bounce-Referenz (Roadmap 1b.6), sofern die Mailable eine hat. (string) config('bounces.reference_header', 'X-Pk-Ref') => $this->bounceReference(), ])); } /** * Ein DSN bringt die Original-Header zurück; hiermit ordnet der * Bounce-Parser den Rückläufer dem Datensatz zu. Mailables überschreiben. */ public function bounceReference(): ?string { return null; } }