diff --git a/components/AdminConfigurationDialog.vue b/components/AdminConfigurationDialog.vue index 99585b6..76eef60 100644 --- a/components/AdminConfigurationDialog.vue +++ b/components/AdminConfigurationDialog.vue @@ -673,6 +673,12 @@ const loadConfigurations = async () => { if (registrationResponse.success && registrationResponse.data) { registrationForm.value = { ...registrationResponse.data }; } + + // Load SMTP/Email config + const smtpResponse = await $fetch<{ success: boolean; data?: SMTPConfig }>('/api/admin/smtp-config'); + if (smtpResponse.success && smtpResponse.data) { + emailForm.value = { ...smtpResponse.data }; + } } catch (error) { console.error('Failed to load configurations:', error); errorMessage.value = 'Failed to load current settings'; diff --git a/server/api/admin/test-email.post.ts b/server/api/admin/test-email.post.ts index 96b2afc..605f410 100644 --- a/server/api/admin/test-email.post.ts +++ b/server/api/admin/test-email.post.ts @@ -49,7 +49,7 @@ export default defineEventHandler(async (event) => { // Get email service and send test email const { getEmailService } = await import('~/server/utils/email'); - const emailService = getEmailService(); + const emailService = await getEmailService(); // Verify connection first const connectionOk = await emailService.verifyConnection(); diff --git a/server/api/auth/send-verification-email.post.ts b/server/api/auth/send-verification-email.post.ts index fed7945..af972a2 100644 --- a/server/api/auth/send-verification-email.post.ts +++ b/server/api/auth/send-verification-email.post.ts @@ -82,7 +82,7 @@ export default defineEventHandler(async (event) => { // Send verification email const { getEmailService } = await import('~/server/utils/email'); - const emailService = getEmailService(); + const emailService = await getEmailService(); try { await emailService.sendWelcomeEmail(email, { diff --git a/server/api/members/[id]/create-portal-account.post.ts b/server/api/members/[id]/create-portal-account.post.ts index a2a4ea7..4ff2fc8 100644 --- a/server/api/members/[id]/create-portal-account.post.ts +++ b/server/api/members/[id]/create-portal-account.post.ts @@ -122,7 +122,7 @@ export default defineEventHandler(async (event) => { const { getEmailService } = await import('~/server/utils/email'); const { generateEmailVerificationToken } = await import('~/server/utils/email-tokens'); - const emailService = getEmailService(); + const emailService = await getEmailService(); const verificationToken = await generateEmailVerificationToken(keycloakId, member.email); const config = useRuntimeConfig(); const verificationLink = `${config.public.domain}/api/auth/verify-email?token=${verificationToken}`; diff --git a/server/api/registration.post.ts b/server/api/registration.post.ts index 87c0510..89e9135 100644 --- a/server/api/registration.post.ts +++ b/server/api/registration.post.ts @@ -141,7 +141,7 @@ export default defineEventHandler(async (event) => { const { getEmailService } = await import('~/server/utils/email'); const { generateEmailVerificationToken } = await import('~/server/utils/email-tokens'); - const emailService = getEmailService(); + const emailService = await getEmailService(); const verificationToken = await generateEmailVerificationToken(createdKeycloakId, body.email); const config = useRuntimeConfig(); const verificationLink = `${config.public.domain}/api/auth/verify-email?token=${verificationToken}`; diff --git a/server/utils/email.ts b/server/utils/email.ts index 55a56a1..4874f63 100644 --- a/server/utils/email.ts +++ b/server/utils/email.ts @@ -334,8 +334,8 @@ let emailServiceInstance: EmailService | null = null; /** * Get or create EmailService instance with current SMTP config */ -export function getEmailService(): EmailService { - const { getSMTPConfig } = require('./admin-config'); +export async function getEmailService(): Promise { + const { getSMTPConfig } = await import('./admin-config'); const config = getSMTPConfig(); if (!emailServiceInstance) {