mailversenden.php hatte keine Zugriffskontrolle, versendete bei jedem GET-Request sofort echte Mails und nutzte PHPMailer, dessen Quelldateien im Repo gar nicht vorhanden waren (nur composer.json/Lizenz) - der Aufruf waere also ohnehin mit Fatal Error abgebrochen. Zusaetzlich waren SMTP- Host, Absender, PayPal-Link und FAQ-URL fest auf einen Alt-Kunden (AOK) codiert. - Ersetzt PHPMailer durch die bestehende saas_send_mail()-Abstraktion aus M3 (Transport log/mail je nach APP_MAIL_TRANSPORT) statt eine fehlende Abhaengigkeit nachzuvendoren. - Neue Tabelle outbound_emails protokolliert jeden Versandversuch: Mandant, Mitglied, Vorlage, Betreff, Status, Fehler - das Versandlog. - Formular hat eine standardmaessig aktive Dry-Run-Checkbox; im Dry-Run wird nur geloggt, saas_send_mail() nicht aufgerufen. - Mailtext ist jetzt tenant-generisch (Saldo, optionaler PayPal-Link nur wenn der Mandant PayPal aktiviert hat, eigener Dashboard-Link) statt hartcodierter Alt-Kunden-Inhalte. - Zugriffskontrolle ergaenzt (owner/admin/treasurer + Legacy-Fallback). - http-smoke.php: mailversenden.php ist jetzt reguel</EOF>
24 lines
934 B
SQL
24 lines
934 B
SQL
CREATE TABLE IF NOT EXISTS outbound_emails (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
tenant_id INT NOT NULL,
|
|
participant_id INT NULL,
|
|
template VARCHAR(60) NOT NULL,
|
|
subject VARCHAR(255) NOT NULL,
|
|
status VARCHAR(30) NOT NULL,
|
|
sent_at DATETIME NULL,
|
|
error VARCHAR(500) NULL,
|
|
created_by_user_id INT NULL,
|
|
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
KEY idx_outbound_emails_tenant_created (tenant_id, created_at),
|
|
KEY idx_outbound_emails_participant (participant_id),
|
|
CONSTRAINT fk_outbound_emails_tenant
|
|
FOREIGN KEY (tenant_id) REFERENCES tenants(id)
|
|
ON DELETE CASCADE,
|
|
CONSTRAINT fk_outbound_emails_participant
|
|
FOREIGN KEY (participant_id) REFERENCES participants(id)
|
|
ON DELETE SET NULL,
|
|
CONSTRAINT fk_outbound_emails_created_by_user
|
|
FOREIGN KEY (created_by_user_id) REFERENCES users(id)
|
|
ON DELETE SET NULL
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|