2
0
Files
cal/calcom/packages/lib/serverConfig.ts
2024-08-09 00:39:27 +02: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,
};