diff --git a/components/email/email-composer.tsx b/components/email/email-composer.tsx index 1bb8a74c..24fda38b 100644 --- a/components/email/email-composer.tsx +++ b/components/email/email-composer.tsx @@ -281,6 +281,12 @@ export function EmailComposer({ const currentIdentity = selectedIdentityId ? identities.find((identity) => identity.id === selectedIdentityId) || primaryIdentity : primaryIdentity; + // Alias identities often lack a configured signature — fall back to the primary + // identity's signature so replies (which auto-select a matching alias) still + // populate the user's signature. + const signatureIdentity = (currentIdentity?.htmlSignature || currentIdentity?.textSignature) + ? currentIdentity + : primaryIdentity; useEffect(() => { if (!autoSelectReplyIdentity) return; if (selectedIdentityId || initialData?.selectedIdentityId) return; @@ -322,10 +328,10 @@ export function EmailComposer({ selectedIdentityId, ]); - const composerSignatureHtml = currentIdentity?.htmlSignature - ? `
${sanitizeEmailHtml(currentIdentity.htmlSignature)}
` - : currentIdentity?.textSignature - ? `
${getPlainTextSignature(currentIdentity).replace(/&/g, '&').replace(//g, '>').replace(/\n/g, '
')}
` + const composerSignatureHtml = signatureIdentity?.htmlSignature + ? `
${sanitizeEmailHtml(signatureIdentity.htmlSignature)}
` + : signatureIdentity?.textSignature + ? `
${getPlainTextSignature(signatureIdentity).replace(/&/g, '&').replace(//g, '>').replace(/\n/g, '
')}
` : ''; const getAutocomplete = useContactStore((s) => s.getAutocomplete); const addToTrustedSendersBook = useContactStore((s) => s.addToTrustedSendersBook); @@ -954,11 +960,11 @@ export function EmailComposer({ // Body is already HTML from the rich text editor (or plain text in plain text mode). // Build HTML signature block (used only in rich text mode) const buildSignatureHtml = (): string => { - if (currentIdentity?.htmlSignature) { - return `

--
${sanitizeEmailHtml(currentIdentity.htmlSignature)}`; + if (signatureIdentity?.htmlSignature) { + return `

--
${sanitizeEmailHtml(signatureIdentity.htmlSignature)}`; } - if (currentIdentity?.textSignature) { - return `

--
${currentIdentity.textSignature.replace(/&/g, '&').replace(//g, '>').replace(/\n/g, '
')}`; + if (signatureIdentity?.textSignature) { + return `

--
${signatureIdentity.textSignature.replace(/&/g, '&').replace(//g, '>').replace(/\n/g, '
')}`; } return ''; }; @@ -970,8 +976,8 @@ export function EmailComposer({ // In plain text mode, send text/plain only (no HTML body) const finalBody = plainTextMode - ? appendPlainTextSignature(body, currentIdentity) - : appendPlainTextSignature(htmlToPlainText(body), currentIdentity); + ? appendPlainTextSignature(body, signatureIdentity) + : appendPlainTextSignature(htmlToPlainText(body), signatureIdentity); const rewritten = plainTextMode ? null : rewriteInlineImages(body); const finalHtmlBody = plainTextMode @@ -1500,9 +1506,9 @@ export function EmailComposer({ )} {plainTextMode ? ( - getPlainTextSignature(currentIdentity) ? ( + getPlainTextSignature(signatureIdentity) ? (
- {'-- \n'}{getPlainTextSignature(currentIdentity)} + {'-- \n'}{getPlainTextSignature(signatureIdentity)}
) : null ) : composerSignatureHtml ? (