From e31cee98fcf5db41ba83fd9254ef32148cd4e5bb Mon Sep 17 00:00:00 2001 From: "Kasanwa Solane Aster Hope (Cassandra de la Cruz-Munoz)" Date: Thu, 2 Jan 2025 20:11:22 -0500 Subject: change to BCC for group emailing Signed-off-by: Raphael Kabo --- src/lib/email.ts | 11 ++++++++++- src/routes/event.ts | 9 +++++++++ src/routes/group.ts | 1 + src/routes/magicLink.ts | 1 + 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/src/lib/email.ts b/src/lib/email.ts index 40b5200..82dd48e 100644 --- a/src/lib/email.ts +++ b/src/lib/email.ts @@ -83,6 +83,7 @@ export const initEmailService = async (): Promise => { export const sendEmail = async ( to: string, + bcc: string, subject: string, text: string, html?: string, @@ -92,6 +93,7 @@ export const sendEmail = async ( try { await sgMail.send({ to, + bcc, from: config.general.email, subject: `${config.general.site_name}: ${subject}`, text, @@ -123,8 +125,14 @@ export const sendEmail = async ( const nodemailerTransporter = nodemailer.createTransport(nodemailerConfig); await nodemailerTransporter.sendMail({ + envelope: { + from: config.general.email, + to, + bcc, + }, from: config.general.email, to, + bcc, subject, text, html, @@ -141,6 +149,7 @@ export const sendEmail = async ( export const sendEmailFromTemplate = async ( to: string, + bcc: string, subject: string, template: EmailTemplate, templateData: Record, @@ -159,5 +168,5 @@ export const sendEmailFromTemplate = async ( `${template}/${template}Text`, templateData, ); - return await sendEmail(to, subject, text, html); + return await sendEmail(to, bcc, subject, text, html); }; diff --git a/src/routes/event.ts b/src/routes/event.ts index 1b79f12..de5cb4c 100644 --- a/src/routes/event.ts +++ b/src/routes/event.ts @@ -27,6 +27,9 @@ import crypto from "crypto"; import ical from "ical"; import { markdownToSanitizedHTML } from "../util/markdown.js"; import { checkMagicLink, getConfigMiddleware } from "../lib/middleware.js"; +import { getConfig } from "../lib/config.js"; +const config = getConfig(); + const storage = multer.memoryStorage(); // Accept only JPEG, GIF or PNG images, up to 10MB @@ -193,6 +196,7 @@ router.post( if (eventData.creatorEmail && req.app.locals.sendEmails) { sendEmailFromTemplate( eventData.creatorEmail, + "", `${eventData.eventName}`, "createEvent", { @@ -229,6 +233,7 @@ router.post( subscribers?.forEach((emailAddress) => { sendEmailFromTemplate( emailAddress, + "", `New event in ${eventGroup.name}`, "eventGroupUpdated", { @@ -493,6 +498,7 @@ router.put( .map((o) => o.email); if (attendeeEmails?.length) { sendEmailFromTemplate( + config.general.email, attendeeEmails.join(","), `${event.name} was just edited`, "editEvent", @@ -608,6 +614,7 @@ router.post( if (creatorEmail && req.app.locals.sendEmails) { sendEmailFromTemplate( creatorEmail, + "", `${importedEventData.summary}`, "createEvent", { @@ -688,6 +695,7 @@ router.delete( if (attendeeEmail && req.app.locals.sendEmails) { await sendEmailFromTemplate( attendeeEmail, + "", "You have been removed from an event", "unattendEvent", { @@ -739,6 +747,7 @@ router.get( if (req.app.locals.sendEmails && attendee.email) { sendEmailFromTemplate( attendee.email, + "", `You have been removed from ${event.name}`, "unattendEvent", { diff --git a/src/routes/group.ts b/src/routes/group.ts index 1bbf501..9f4105c 100644 --- a/src/routes/group.ts +++ b/src/routes/group.ts @@ -95,6 +95,7 @@ router.post( if (groupData.creatorEmail && req.app.locals.sendEmails) { sendEmailFromTemplate( groupData.creatorEmail, + "", `${eventGroup.name}`, "createEventGroup", { diff --git a/src/routes/magicLink.ts b/src/routes/magicLink.ts index 499d0a4..b4afca6 100644 --- a/src/routes/magicLink.ts +++ b/src/routes/magicLink.ts @@ -50,6 +50,7 @@ router.post("/magic-link/event/create", async (req: Request, res: Response) => { sendEmailFromTemplate( email, + "", `Magic link to create an event`, "createEventMagicLink", { -- cgit v1.2.3