courrier multi account restore compose

This commit is contained in:
alma 2025-04-28 21:10:05 +02:00
parent 38d11a5dfd
commit 7963852af6
2 changed files with 33 additions and 12 deletions

View File

@ -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);

View File

@ -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 = `<div style="font-weight: 400; color: #555; margin: 20px 0 8px 0; font-size: 13px;">On ${formattedDate}, ${fromText} wrote:</div>`;
// Get and sanitize original content (sanitization preserves content direction)
const originalContent = email.html || email.content || email.text || '';
let originalContent = '';
if (email.content && typeof email.content === 'object') {
const contentObj = email.content as EmailContent;
originalContent = contentObj.html || contentObj.text || '';
} else if (typeof email.content === 'string') {
originalContent = email.content;
} else {
originalContent = email.html || email.text || '';
}
const quotedContent = sanitizeHtml(originalContent);
// Format recipients