From 75cb80df22f4a2249d5806672bc05f24ea4b3669 Mon Sep 17 00:00:00 2001 From: alma Date: Thu, 24 Apr 2025 16:30:22 +0200 Subject: [PATCH] mime change --- app/api/parse-email/route.ts | 7 ++++++- app/courrier/page.tsx | 6 +++++- lib/mail-parser-wrapper.ts | 11 +++++++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/api/parse-email/route.ts b/app/api/parse-email/route.ts index 2db8bb65..613b89ce 100644 --- a/app/api/parse-email/route.ts +++ b/app/api/parse-email/route.ts @@ -4,11 +4,16 @@ import { parseEmail } from '@/lib/server/email-parser'; export async function POST(request: Request) { try { const body = await request.json(); + console.log('Received request body:', body); + const { emailContent } = body; + console.log('Email content type:', typeof emailContent); + console.log('Email content length:', emailContent?.length); if (!emailContent || typeof emailContent !== 'string') { + console.log('Invalid email content:', { emailContent, type: typeof emailContent }); return NextResponse.json( - { error: 'Invalid email content. Expected a string.' }, + { error: 'Invalid email content. Expected a string.', received: { type: typeof emailContent, length: emailContent?.length } }, { status: 400 } ); } diff --git a/app/courrier/page.tsx b/app/courrier/page.tsx index f579a1a1..81da9dd5 100644 --- a/app/courrier/page.tsx +++ b/app/courrier/page.tsx @@ -114,7 +114,11 @@ async function renderEmailContent(email: Email) { try { if (!email.body) return null; - const parsedEmail = await decodeEmail(email.body); + // Ensure the email content is properly formatted + const formattedEmail = email.body.trim(); + if (!formattedEmail) return null; + + const parsedEmail = await decodeEmail(formattedEmail); if (parsedEmail.html) { return ( diff --git a/lib/mail-parser-wrapper.ts b/lib/mail-parser-wrapper.ts index fecb181b..3ed52013 100644 --- a/lib/mail-parser-wrapper.ts +++ b/lib/mail-parser-wrapper.ts @@ -21,16 +21,23 @@ export interface ParsedEmail { export async function decodeEmail(emailContent: string): Promise { try { + // Ensure the email content is properly formatted + const formattedContent = emailContent.trim(); + if (!formattedContent) { + throw new Error('Email content is empty'); + } + const response = await fetch('/api/parse-email', { method: 'POST', headers: { 'Content-Type': 'application/json', }, - body: JSON.stringify({ emailContent }), + body: JSON.stringify({ emailContent: formattedContent }), }); if (!response.ok) { - throw new Error('Failed to parse email'); + const errorData = await response.json(); + throw new Error(errorData.error || 'Failed to parse email'); } const data = await response.json();