diff --git a/app/Mail/MagicLoginLink.php b/app/Mail/MagicLoginLink.php
index e9a38987..2565d736 100644
--- a/app/Mail/MagicLoginLink.php
+++ b/app/Mail/MagicLoginLink.php
@@ -22,7 +22,7 @@ class MagicLoginLink extends Mailable
public function envelope(): Envelope
{
return new Envelope(
- subject: 'Ihr Login-Link fuer pressekonto'
+ subject: 'Ihr Anmeldelink für Ihr pressekonto'
);
}
diff --git a/app/Providers/AppServiceProvider.php b/app/Providers/AppServiceProvider.php
index 9dd28b1e..8589eb87 100644
--- a/app/Providers/AppServiceProvider.php
+++ b/app/Providers/AppServiceProvider.php
@@ -27,7 +27,10 @@ use Illuminate\Auth\Events\Login;
use Illuminate\Auth\Events\Registered;
use Illuminate\Auth\Events\Verified;
use Illuminate\Auth\Listeners\SendEmailVerificationNotification;
+use Illuminate\Auth\Notifications\ResetPassword;
+use Illuminate\Auth\Notifications\VerifyEmail;
use Illuminate\Database\Events\QueryExecuted;
+use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Event;
use Illuminate\Support\Facades\Gate;
@@ -92,6 +95,33 @@ class AppServiceProvider extends ServiceProvider
Event::listen(Registered::class, SendEmailVerificationNotification::class);
Event::listen(Verified::class, ActivateUserAfterVerification::class);
+ // Framework-Auth-Mails (Passwort-Reset, E-Mail-Verifizierung) im
+ // pressekonto-CI rendern statt im Laravel-Standard-Markdown-Theme —
+ // gleiches Layout wie alle übrigen System-Mails (emails/layout).
+ ResetPassword::toMailUsing(function (User $user, string $token): MailMessage {
+ $resetUrl = url(route('password.reset', [
+ 'token' => $token,
+ 'email' => $user->getEmailForPasswordReset(),
+ ], false));
+
+ return (new MailMessage)
+ ->subject('Passwort zurücksetzen für Ihr pressekonto')
+ ->view('emails.auth.reset-password', [
+ 'user' => $user,
+ 'resetUrl' => $resetUrl,
+ 'expiresInMinutes' => (int) config('auth.passwords.'.config('auth.defaults.passwords').'.expire'),
+ ]);
+ });
+
+ VerifyEmail::toMailUsing(function (User $user, string $verificationUrl): MailMessage {
+ return (new MailMessage)
+ ->subject('E-Mail-Adresse bestätigen für Ihr pressekonto')
+ ->view('emails.auth.verify-email', [
+ 'user' => $user,
+ 'verificationUrl' => $verificationUrl,
+ ]);
+ });
+
// Bei jedem Login Firmen-/Kontakt-Zuordnungen (gleiche E-Mail) auffrischen.
Event::listen(Login::class, SyncCompanyMembershipsOnLogin::class);
diff --git a/resources/views/components/emails/button.blade.php b/resources/views/components/emails/button.blade.php
new file mode 100644
index 00000000..aa67f25c
--- /dev/null
+++ b/resources/views/components/emails/button.blade.php
@@ -0,0 +1,12 @@
+@props([
+ 'url',
+])
+
+{{-- E-Mail-tauglicher Button im Hub-CI (Tabellen-Konstrukt für Outlook). --}}
+
diff --git a/resources/views/components/emails/layout.blade.php b/resources/views/components/emails/layout.blade.php
new file mode 100644
index 00000000..be9ee94e
--- /dev/null
+++ b/resources/views/components/emails/layout.blade.php
@@ -0,0 +1,106 @@
+@props([
+ 'title' => null,
+ 'preheader' => null,
+])
+
+@php
+ /**
+ * Zentrales CI-Layout für alle System-E-Mails (Auth, Pressemitteilungen,
+ * Kündigung/Widerruf, Kontakt). Absender-Marke ist immer pressekonto —
+ * der gemeinsame Publisher · Hub der Portale presseecho und
+ * businessportal24. Header und Footer erklären diese Zugehörigkeit,
+ * damit Empfänger die Mail sofort einordnen können.
+ *
+ * E-Mail-tauglich gebaut: Tabellen-Layout, Inline-Styles für alles
+ * Layout-Kritische, ergänzende Klassen im
+
+
+
+ @if ($preheader)
+ {{-- Vorschautext im Posteingang; im Mail-Body unsichtbar. --}}
+ {{ $preheader }}
+ @endif
+
+
+
+
+
+
+ {{-- Bernstein-Akzentstreifen (CI: 3px-Streifen des Hubs) --}}
+
+ | |
+
+
+ {{-- Header: Wortmarke + Publisher · Hub in Hub-Blau --}}
+
+ |
+ {{ $brand['name'] ?? 'presse' }}{{ $brand['accent'] ?? 'konto' }}
+
+ {{ $taglineShort }}
+
+ |
+
+
+ {{-- Inhalt --}}
+
+ |
+ {{ $slot }}
+ |
+
+
+ {{-- Brand-Familie: Zugehörigkeit von presseecho + businessportal24 --}}
+
+ |
+ pressekonto
+ ist der gemeinsame Publisher · Hub für
+ presseecho
+ und
+ businessportal24
+ — ein Konto, redaktionell geprüft, auf beiden Portalen veröffentlichen.
+ |
+
+
+
+ {{-- Rechtliches unterhalb der Karte --}}
+
+
+ |
+ {{ $footerLegal }}
+ |
+
+
+ |
+
+
+
+