diff --git a/app/api/courrier/account/route.ts b/app/api/courrier/account/route.ts index 8d96f6bb..9561776d 100644 --- a/app/api/courrier/account/route.ts +++ b/app/api/courrier/account/route.ts @@ -135,7 +135,7 @@ export async function POST(request: Request) { // Save credentials to database and cache console.log(`Saving credentials for user: ${session.user.id}`); - await saveUserEmailCredentials(session.user.id, credentials); + await saveUserEmailCredentials(session.user.id, email, credentials); console.log(`Email account successfully added for user ${session.user.id}`); return NextResponse.json({ diff --git a/lib/services/email-service.ts b/lib/services/email-service.ts index f8a735e9..f527fb3f 100644 --- a/lib/services/email-service.ts +++ b/lib/services/email-service.ts @@ -197,16 +197,27 @@ export async function saveUserEmailCredentials( credentials: EmailCredentials ): Promise { console.log('Saving credentials for user:', userId, 'account:', accountId); + console.log('Saving credentials for user:', userId, 'account:', credentials); + if (!credentials) { + throw new Error('No credentials provided'); + } + // Extract only the fields that exist in the database schema const dbCredentials = { email: credentials.email, password: credentials.password ?? '', host: credentials.host, - port: credentials.port + port: credentials.port, + secure: credentials.secure ?? true, + smtp_host: credentials.smtp_host || null, + smtp_port: credentials.smtp_port || null, + smtp_secure: credentials.smtp_secure ?? false, + display_name: credentials.display_name || null, + color: credentials.color || null }; - // Save to database - only using fields that exist in the schema + // Save to database await prisma.mailCredentials.upsert({ where: { id: accountId,