fix(email): fatally exit if email is enabled but cannot be initialized (#2204)
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { logger, moduleLogger } from '@/logging/logging'
|
||||
import { isEmailEnabled, isTestEnv } from '@/modules/shared/helpers/envHelper'
|
||||
import { createTransport, Transporter } from 'nodemailer'
|
||||
|
||||
let transporter: Transporter | undefined = undefined
|
||||
@@ -29,8 +30,26 @@ const initSmtpTransporter = async () => {
|
||||
export async function initializeTransporter(): Promise<Transporter | undefined> {
|
||||
let newTransporter = undefined
|
||||
|
||||
if (process.env.NODE_ENV === 'test') newTransporter = createJsonEchoTransporter()
|
||||
if (process.env.EMAIL === 'true') newTransporter = await initSmtpTransporter()
|
||||
if (isEmailEnabled()) {
|
||||
newTransporter = await initSmtpTransporter()
|
||||
|
||||
if (!newTransporter) {
|
||||
const message =
|
||||
'📧 Email provider is enabled but transport has not initialized correctly. Please review the email configuration or your email system for problems.'
|
||||
moduleLogger.error(message)
|
||||
throw new Error(message)
|
||||
}
|
||||
}
|
||||
|
||||
if (!newTransporter && isTestEnv()) {
|
||||
newTransporter = createJsonEchoTransporter()
|
||||
if (!newTransporter) {
|
||||
const message =
|
||||
'📧 In testing a mock email provider is enabled but transport has not initialized correctly.'
|
||||
moduleLogger.error(message)
|
||||
throw new Error(message)
|
||||
}
|
||||
}
|
||||
|
||||
if (!newTransporter) {
|
||||
moduleLogger.warn(
|
||||
|
||||
@@ -297,3 +297,7 @@ export function getGendoAIAPIEndpoint() {
|
||||
}
|
||||
|
||||
export const getFeatureFlags = () => Environment.getFeatureFlags()
|
||||
|
||||
export function isEmailEnabled() {
|
||||
return process.env.EMAIL === 'true'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user