From 10776764d76a408994079c66bced040952d22244 Mon Sep 17 00:00:00 2001 From: s4luorth Date: Fri, 18 Sep 2026 07:33:22 +0200 Subject: [PATCH] =?UTF-8?q?Mailvorlagen:=20pro=20Vorlage=20=E2=80=9EKopie?= =?UTF-8?q?=20an=20mich"=20(BCC=20an=20Team-Adresse)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - email_templates: neues Feld bcc_team (Checkbox). - Mailer: ist bcc_team gesetzt, geht die Mail zusätzlich als BCC an email_settings.team_email (Kunde sieht die Kopie nicht). Co-Authored-By: Claude Opus 4.8 --- bootstrap/bootstrap.mjs | 1 + extensions/directus-extension-skrift-mailer/dist/index.js | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/bootstrap/bootstrap.mjs b/bootstrap/bootstrap.mjs index 3df2a8c..e4ad860 100644 --- a/bootstrap/bootstrap.mjs +++ b/bootstrap/bootstrap.mjs @@ -574,6 +574,7 @@ const collections = [ f('body', 'text', { interface: 'input-rich-text-html', note: 'Text (WYSIWYG/HTML). Platzhalter in {{...}}.' }), f('append_signature', 'boolean', { interface: 'boolean', default: true, note: 'Signatur automatisch anhängen (bei Mails mit eigenem Footer aus).' }), f('attach_agb', 'boolean', { interface: 'boolean', default: false, note: 'AGB-PDF an diese Mail anhängen.' }), + f('bcc_team', 'boolean', { interface: 'boolean', default: false, note: 'Kopie an mich (Team-Adresse aus email_settings) als BCC senden.' }), f('enabled', 'boolean', { interface: 'boolean', default: true }), ] }, diff --git a/extensions/directus-extension-skrift-mailer/dist/index.js b/extensions/directus-extension-skrift-mailer/dist/index.js index f6315b8..c10b0ec 100644 --- a/extensions/directus-extension-skrift-mailer/dist/index.js +++ b/extensions/directus-extension-skrift-mailer/dist/index.js @@ -97,7 +97,7 @@ export default (register, { services, getSchema, logger }) => { async function loadTemplate(key, schema) { const rows = await new ItemsService('email_templates', { schema, accountability: null }).readByQuery({ filter: { key: { _eq: key }, enabled: { _eq: true } }, - limit: 1, fields: ['subject', 'body', 'append_signature', 'attach_agb'], + limit: 1, fields: ['subject', 'body', 'append_signature', 'attach_agb', 'bcc_team'], }); return rows?.[0] || null; } @@ -105,7 +105,7 @@ export default (register, { services, getSchema, logger }) => { async function loadSettings(schema) { try { return await new ItemsService('email_settings', { schema, accountability: null }) - .readSingleton({ fields: ['signature', 'portal_url', 'company_footer', 'agb_file', 'sender_name', 'sender_email'] }); + .readSingleton({ fields: ['signature', 'portal_url', 'company_footer', 'agb_file', 'sender_name', 'sender_email', 'team_email'] }); } catch { return {}; } } @@ -227,6 +227,8 @@ export default (register, { services, getSchema, logger }) => { const anhang = await agbAnhang(schema, settings); if (anhang) nachricht.attachments = [anhang]; } + // „Kopie an mich" (pro Vorlage): Team-Adresse als BCC (Kunde sieht sie nicht). + if (tpl.bcc_team && settings.team_email) nachricht.bcc = String(settings.team_email).trim(); await new MailService({ schema, accountability: null }).send(nachricht); logger.info(`[skrift-mailer] „${key}" an ${order.customer_email} (${order.order_number}).`); }