smtp reinitialize on credential detection
This commit is contained in:
parent
0890ffe74d
commit
3732ce66e3
@ -10,6 +10,7 @@ import { seedDefaultConfigurations } from './services/configSeed.service';
|
|||||||
import { startPauseResumeJob } from './jobs/pauseResumeJob';
|
import { startPauseResumeJob } from './jobs/pauseResumeJob';
|
||||||
import './queues/pauseResumeWorker'; // Initialize pause resume worker
|
import './queues/pauseResumeWorker'; // Initialize pause resume worker
|
||||||
import { initializeQueueMetrics, stopQueueMetrics } from './utils/queueMetrics';
|
import { initializeQueueMetrics, stopQueueMetrics } from './utils/queueMetrics';
|
||||||
|
import { emailService } from './services/email.service';
|
||||||
|
|
||||||
const PORT: number = parseInt(process.env.PORT || '5000', 10);
|
const PORT: number = parseInt(process.env.PORT || '5000', 10);
|
||||||
|
|
||||||
@ -20,6 +21,15 @@ const startServer = async (): Promise<void> => {
|
|||||||
// This will merge secrets from GCS into process.env if enabled
|
// This will merge secrets from GCS into process.env if enabled
|
||||||
await initializeSecrets();
|
await initializeSecrets();
|
||||||
|
|
||||||
|
// Re-initialize email service after secrets are loaded (in case SMTP credentials were loaded)
|
||||||
|
// This ensures the email service uses production SMTP if credentials are available
|
||||||
|
try {
|
||||||
|
await emailService.initialize();
|
||||||
|
console.log('📧 Email service re-initialized after secrets loaded');
|
||||||
|
} catch (error) {
|
||||||
|
console.warn('⚠️ Email service re-initialization warning (will use test account if SMTP not configured):', error);
|
||||||
|
}
|
||||||
|
|
||||||
const server = http.createServer(app);
|
const server = http.createServer(app);
|
||||||
initSocket(server);
|
initSocket(server);
|
||||||
|
|
||||||
|
|||||||
@ -106,6 +106,18 @@ export class EmailService {
|
|||||||
await this.initialize();
|
await this.initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// If using test account, check if SMTP credentials are now available and re-initialize
|
||||||
|
if (this.useTestAccount) {
|
||||||
|
const smtpHost = process.env.SMTP_HOST;
|
||||||
|
const smtpUser = process.env.SMTP_USER;
|
||||||
|
const smtpPassword = process.env.SMTP_PASSWORD;
|
||||||
|
|
||||||
|
if (smtpHost && smtpUser && smtpPassword) {
|
||||||
|
logger.info('📧 SMTP credentials detected - re-initializing email service with production SMTP');
|
||||||
|
await this.initialize();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const recipients = Array.isArray(options.to) ? options.to.join(', ') : options.to;
|
const recipients = Array.isArray(options.to) ? options.to.join(', ') : options.to;
|
||||||
const fromAddress = process.env.EMAIL_FROM || 'RE Flow <noreply@royalenfield.com>';
|
const fromAddress = process.env.EMAIL_FROM || 'RE Flow <noreply@royalenfield.com>';
|
||||||
|
|
||||||
@ -253,6 +265,8 @@ export class EmailService {
|
|||||||
export const emailService = new EmailService();
|
export const emailService = new EmailService();
|
||||||
|
|
||||||
// Initialize on import (will use test account if SMTP not configured)
|
// Initialize on import (will use test account if SMTP not configured)
|
||||||
|
// Note: If secrets are loaded later, the service will re-initialize automatically
|
||||||
|
// when sendEmail is called (if SMTP credentials become available)
|
||||||
emailService.initialize().catch(error => {
|
emailService.initialize().catch(error => {
|
||||||
logger.error('Failed to initialize email service:', error);
|
logger.error('Failed to initialize email service:', error);
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user