-
Notifications
You must be signed in to change notification settings - Fork 261
Expand file tree
/
Copy pathsmtp.ts
More file actions
28 lines (22 loc) · 1.01 KB
/
smtp.ts
File metadata and controls
28 lines (22 loc) · 1.01 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import { env } from "./env.server.js";
import { createLogger } from "./logger.js";
const logger = createLogger("smtp");
export const getSMTPConnectionURL = (): string | undefined => {
if (env.SMTP_CONNECTION_URL) {
return env.SMTP_CONNECTION_URL;
}
const { SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD } = env;
if (!SMTP_HOST && !SMTP_PORT && !SMTP_USERNAME && !SMTP_PASSWORD) {
return undefined;
}
const missing: string[] = [];
if (!SMTP_HOST) missing.push("SMTP_HOST");
if (!SMTP_PORT) missing.push("SMTP_PORT");
if (!SMTP_USERNAME) missing.push("SMTP_USERNAME");
if (!SMTP_PASSWORD) missing.push("SMTP_PASSWORD");
if (missing.length > 0) {
logger.error(`Missing required SMTP environment variables: ${missing.join(", ")}. All of SMTP_HOST, SMTP_PORT, SMTP_USERNAME, and SMTP_PASSWORD must be set when not using SMTP_CONNECTION_URL.`);
return undefined;
}
return `smtp://${SMTP_USERNAME}:${SMTP_PASSWORD}@${SMTP_HOST}:${SMTP_PORT}`;
}