From 7d09ccb0d743becbf08e7d0264713e4941625ac1 Mon Sep 17 00:00:00 2001 From: Carina Wollendorfer <30310907+CarinaWolli@users.noreply.github.com> Date: Thu, 16 Nov 2023 17:51:30 +0100 Subject: [PATCH] fix: add sendgrid-specific header only for SendGrid smtp server (#11932) Co-authored-by: CarinaWolli --- packages/emails/templates/_base-email.ts | 13 ++----------- packages/lib/getAdditionalEmailHeaders.ts | 21 +++++++++++++++++++++ packages/lib/serverConfig.ts | 3 +++ 3 files changed, 26 insertions(+), 11 deletions(-) create mode 100644 packages/lib/getAdditionalEmailHeaders.ts diff --git a/packages/emails/templates/_base-email.ts b/packages/emails/templates/_base-email.ts index 6aefdeffa3..51159a198d 100644 --- a/packages/emails/templates/_base-email.ts +++ b/packages/emails/templates/_base-email.ts @@ -48,17 +48,7 @@ export default class BaseEmail { const payload = this.getNodeMailerPayload(); const parseSubject = z.string().safeParse(payload?.subject); const payloadWithUnEscapedSubject = { - headers: { - "X-SMTPAPI": JSON.stringify({ - filters: { - bypass_list_management: { - settings: { - enable: 1, - }, - }, - }, - }), - }, + headers: this.getMailerOptions().headers, ...payload, ...(parseSubject.success && { subject: decodeHTML(parseSubject.data) }), }; @@ -84,6 +74,7 @@ export default class BaseEmail { return { transport: serverConfig.transport, from: serverConfig.from, + headers: serverConfig.headers, }; } diff --git a/packages/lib/getAdditionalEmailHeaders.ts b/packages/lib/getAdditionalEmailHeaders.ts new file mode 100644 index 0000000000..4ef02f9292 --- /dev/null +++ b/packages/lib/getAdditionalEmailHeaders.ts @@ -0,0 +1,21 @@ +type EmailHostHeaders = { + [key: string]: { + [subKey: string]: string; + }; +}; + +export function getAdditionalEmailHeaders(): EmailHostHeaders { + return { + "smtp.sendgrid.net": { + "X-SMTPAPI": JSON.stringify({ + filters: { + bypass_list_management: { + settings: { + enable: 1, + }, + }, + }, + }), + }, + }; +} diff --git a/packages/lib/serverConfig.ts b/packages/lib/serverConfig.ts index 3e6d10993e..09feb75661 100644 --- a/packages/lib/serverConfig.ts +++ b/packages/lib/serverConfig.ts @@ -3,6 +3,8 @@ import type SMTPConnection from "nodemailer/lib/smtp-connection"; import { isENVDev } from "@calcom/lib/env"; +import { getAdditionalEmailHeaders } from "./getAdditionalEmailHeaders"; + function detectTransport(): SendmailTransport.Options | SMTPConnection.Options | string { if (process.env.EMAIL_SERVER) { return process.env.EMAIL_SERVER; @@ -41,4 +43,5 @@ function detectTransport(): SendmailTransport.Options | SMTPConnection.Options | export const serverConfig = { transport: detectTransport(), from: process.env.EMAIL_FROM, + headers: getAdditionalEmailHeaders()[process.env.EMAIL_SERVER_HOST || ""] || undefined, };