feat: separate Absenderprofile für Kundencenter/Störungsticket/Rechnungen
Bisher gab es nur einen globalen SMTP-Absender für alle Mailvorlagen. Jetzt kann je Bereich ein eigener Absendername/-adresse hinterlegt werden (z. B. support@… für Tickets, rechnung@… für Rechnungen); leer gelassene Felder fallen weiter auf den globalen SMTP-Absender zurück. Jede Vorlage ist fest einem Bereich zugeordnet (Migration 023: mail_templates.category, neue Tabelle mail_sender_profiles mit den drei Zeilen kundencenter/stoerungsticket/rechnungen). Außerdem: der Testmail-Versand (SMTP-Verbindung wie auch je Vorlage) zeigt jetzt den konkreten Fehler aus dem Mail-Protokoll an (z. B. "535 5.7.8 authentication failed") statt nur "Fehlgeschlagen". Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
bbece6ca5f
commit
7d2b2947f4
4 changed files with 88 additions and 15 deletions
19
migrations/023_mail_sender_profiles.sql
Normal file
19
migrations/023_mail_sender_profiles.sql
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
-- Getrennte Absender-Identitäten je Bereich (Kundencenter, Störungsticket, Rechnungen), optional abweichend
|
||||
-- vom globalen SMTP-Absender (smtp_settings.from_name/from_email). Leer = globaler Absender wird verwendet.
|
||||
CREATE TABLE mail_sender_profiles (
|
||||
category ENUM('kundencenter','stoerungsticket','rechnungen') PRIMARY KEY,
|
||||
name VARCHAR(150) NOT NULL,
|
||||
from_name VARCHAR(150) NULL,
|
||||
from_email VARCHAR(254) NULL,
|
||||
updated_at DATETIME(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3),
|
||||
updated_by CHAR(36) NULL REFERENCES users(id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
||||
INSERT INTO mail_sender_profiles (category, name) VALUES
|
||||
('kundencenter', 'Kundencenter (Zugang, Passwort, Zugangsdaten)'),
|
||||
('stoerungsticket', 'Störungsticket (Support)'),
|
||||
('rechnungen', 'Rechnungen');
|
||||
|
||||
ALTER TABLE mail_templates ADD COLUMN category ENUM('kundencenter','stoerungsticket','rechnungen') NOT NULL DEFAULT 'kundencenter';
|
||||
UPDATE mail_templates SET category = 'kundencenter' WHERE `key` IN ('invite','password_reset','panel_credentials');
|
||||
UPDATE mail_templates SET category = 'stoerungsticket' WHERE `key` IN ('ticket_created','ticket_message');
|
||||
UPDATE mail_templates SET category = 'rechnungen' WHERE `key` IN ('invoice_issued');
|
||||
Loading…
Add table
Add a link
Reference in a new issue