diff --git a/lib/utils/email-content.ts b/lib/utils/email-content.ts index 4a9de2c0..829a2515 100644 --- a/lib/utils/email-content.ts +++ b/lib/utils/email-content.ts @@ -17,24 +17,31 @@ export function formatEmailContent(email: any): string { // Get the content in order of preference let content = ''; - if (email.formattedContent) { - console.log('formatEmailContent: Using formattedContent'); - content = email.formattedContent; + if (email.content && typeof email.content === 'object') { + console.log('formatEmailContent: Using object content:', email.content); + content = email.content.html || email.content.text || ''; } else if (typeof email.content === 'string') { console.log('formatEmailContent: Using direct string content'); content = email.content; - } else if (email.content && typeof email.content === 'object') { - console.log('formatEmailContent: Using object content:', email.content); - content = email.content.html || email.content.text || ''; - } else { - console.log('formatEmailContent: Using fallback content'); - content = email.html || email.text || ''; + } else if (email.html) { + console.log('formatEmailContent: Using html content'); + content = email.html; + } else if (email.text) { + console.log('formatEmailContent: Using text content'); + content = email.text; + } else if (email.formattedContent) { + console.log('formatEmailContent: Using formattedContent'); + content = email.formattedContent; } console.log('formatEmailContent: Content before sanitization:', content); - // Sanitize the content for display - const sanitizedContent = DOMPurify.sanitize(content); + // Sanitize the content for display while preserving formatting + const sanitizedContent = DOMPurify.sanitize(content, { + ADD_TAGS: ['style'], + ADD_ATTR: ['class', 'style', 'dir'], + ALLOW_DATA_ATTR: false + }); console.log('formatEmailContent: Final sanitized content:', sanitizedContent); diff --git a/lib/utils/email-formatter.ts b/lib/utils/email-formatter.ts index e5718b4c..29180535 100644 --- a/lib/utils/email-formatter.ts +++ b/lib/utils/email-formatter.ts @@ -94,6 +94,11 @@ export interface EmailMessage { contentFetched?: boolean; } +interface EmailContent { + html?: string; + text?: string; +} + /** * Format email addresses for display */ @@ -258,7 +263,16 @@ export function formatReplyEmail(email: EmailMessage, type: 'reply' | 'reply-all const quoteHeader = `