2024-10-03 20:55:54 -04:00
|
|
|
export * from "@server/emails/sendEmail";
|
|
|
|
|
|
|
|
import nodemailer from "nodemailer";
|
2025-01-01 21:41:31 -05:00
|
|
|
import config from "@server/lib/config";
|
2024-10-03 20:55:54 -04:00
|
|
|
import logger from "@server/logger";
|
2025-03-02 20:02:58 -05:00
|
|
|
import SMTPTransport from "nodemailer/lib/smtp-transport";
|
2024-10-03 20:55:54 -04:00
|
|
|
|
|
|
|
function createEmailClient() {
|
2025-01-01 17:50:12 -05:00
|
|
|
const emailConfig = config.getRawConfig().email;
|
2025-01-28 22:13:46 -05:00
|
|
|
if (!emailConfig) {
|
2025-01-27 19:59:52 -05:00
|
|
|
logger.warn(
|
|
|
|
"Email SMTP configuration is missing. Emails will not be sent."
|
|
|
|
);
|
|
|
|
return;
|
|
|
|
}
|
2024-10-03 20:55:54 -04:00
|
|
|
|
2025-03-02 20:02:58 -05:00
|
|
|
const settings = {
|
2025-01-01 17:50:12 -05:00
|
|
|
host: emailConfig.smtp_host,
|
|
|
|
port: emailConfig.smtp_port,
|
2025-01-27 19:59:52 -05:00
|
|
|
secure: emailConfig.smtp_secure || false,
|
2024-10-03 20:55:54 -04:00
|
|
|
auth: {
|
2025-01-01 17:50:12 -05:00
|
|
|
user: emailConfig.smtp_user,
|
2025-01-27 19:59:52 -05:00
|
|
|
pass: emailConfig.smtp_pass
|
|
|
|
}
|
2025-03-02 20:02:58 -05:00
|
|
|
} as SMTPTransport.Options;
|
|
|
|
|
2025-03-02 23:24:21 -05:00
|
|
|
if (emailConfig.smtp_tls_reject_unauthorized !== undefined) {
|
2025-03-02 20:02:58 -05:00
|
|
|
settings.tls = {
|
2025-03-02 23:24:21 -05:00
|
|
|
rejectUnauthorized: emailConfig.smtp_tls_reject_unauthorized
|
2025-03-02 20:02:58 -05:00
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
return nodemailer.createTransport(settings);
|
2024-10-03 20:55:54 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
export const emailClient = createEmailClient();
|
|
|
|
|
|
|
|
export default emailClient;
|