diff --git a/app/courrier/page.tsx b/app/courrier/page.tsx index 677c963e..0cd95fe7 100644 --- a/app/courrier/page.tsx +++ b/app/courrier/page.tsx @@ -123,10 +123,16 @@ function decodeQuotedPrintable(text: string, charset: string): string { } function parseFullEmail(emailRaw: string) { + console.log('=== parseFullEmail Debug ==='); + console.log('Input email length:', emailRaw.length); + console.log('First 200 chars:', emailRaw.substring(0, 200)); + // Check if this is a multipart message by looking for boundary definition const boundaryMatch = emailRaw.match(/boundary="?([^"\r\n;]+)"?/i) || emailRaw.match(/boundary=([^\r\n;]+)/i); + console.log('Boundary found:', boundaryMatch ? boundaryMatch[1] : 'No boundary'); + if (boundaryMatch) { const boundary = boundaryMatch[1].trim(); @@ -439,20 +445,21 @@ function decodeMimeContent(content: string): string { // Add this helper function const renderEmailContent = (email: Email) => { + console.log('=== renderEmailContent Debug ==='); + console.log('Email ID:', email.id); + console.log('Subject:', email.subject); + console.log('Body length:', email.body.length); + console.log('First 200 chars of body:', email.body.substring(0, 200)); + try { - console.log('=== Email Content Debug ==='); - console.log('Raw email body:', email.body.substring(0, 200) + '...'); // First 200 chars - console.log('Email ID:', email.id); - console.log('Email subject:', email.subject); - - const parsed = parseFullEmail(email.body) as ParsedEmailContent | ParsedEmailMetadata; - console.log('Parsed content type:', 'text' in parsed ? 'ParsedEmailContent' : 'ParsedEmailMetadata'); + const parsed = parseFullEmail(email.body); console.log('Parsed content:', { hasText: 'text' in parsed ? !!parsed.text : false, hasHtml: 'html' in parsed ? !!parsed.html : false, - hasAttachments: 'attachments' in parsed ? parsed.attachments?.length : 0 + textPreview: 'text' in parsed ? parsed.text?.substring(0, 100) : 'No text', + htmlPreview: 'html' in parsed ? parsed.html?.substring(0, 100) : 'No HTML' }); - + const content = 'text' in parsed ? parsed.text : ('html' in parsed ? parsed.html || '' : email.body); console.log('Selected content type:', isHtml ? 'HTML' : 'Plain text'); console.log('Content preview:', content.substring(0, 100) + '...'); @@ -556,7 +563,7 @@ const renderEmailContent = (email: Email) => { ); } } catch (e) { - console.error('Error rendering email content:', e); + console.error('Error in renderEmailContent:', e); return (