cal/packages/lib/serverConfig.ts
Nafees Nazik 325f250d39
feat: add resend email transport (#12645)
Co-authored-by: Erik <erik@erosemberg.com>
2023-12-04 15:31:55 -08:00

62 lines
1.5 KiB
TypeScript

import type SendmailTransport from "nodemailer/lib/sendmail-transport";
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.RESEND_API_KEY) {
const transport = {
host: "smtp.resend.com",
secure: true,
port: 465,
auth: {
user: "resend",
pass: process.env.RESEND_API_KEY,
},
};
return transport;
}
if (process.env.EMAIL_SERVER) {
return process.env.EMAIL_SERVER;
}
if (process.env.EMAIL_SERVER_HOST) {
const port = parseInt(process.env.EMAIL_SERVER_PORT || "");
const auth =
process.env.EMAIL_SERVER_USER && process.env.EMAIL_SERVER_PASSWORD
? {
user: process.env.EMAIL_SERVER_USER,
pass: process.env.EMAIL_SERVER_PASSWORD,
}
: undefined;
const transport = {
host: process.env.EMAIL_SERVER_HOST,
port,
auth,
secure: port === 465,
tls: {
rejectUnauthorized: !isENVDev,
},
};
return transport;
}
return {
sendmail: true,
newline: "unix",
path: "/usr/sbin/sendmail",
};
}
export const serverConfig = {
transport: detectTransport(),
from: process.env.EMAIL_FROM,
headers: getAdditionalEmailHeaders()[process.env.EMAIL_SERVER_HOST || ""] || undefined,
};