diff --git a/src/smtp-client.js b/src/smtp-client.js index 77e0ba8..c15fc7f 100644 --- a/src/smtp-client.js +++ b/src/smtp-client.js @@ -68,9 +68,16 @@ export class SMTPClient { }; }).filter(Boolean); // Remove null entries + // FROM field with display name if available + let fromField = provider.from; + if (emailData.fromName) { + // Format as "Display Name " + fromField = `${emailData.fromName} <${provider.from}>`; + } + // Prepare email const mailOptions = { - from: provider.from, + from: fromField, to: emailData.envelope.to, subject: emailData.subject || '(No Subject)', text: emailData.text, diff --git a/src/smtp-server.js b/src/smtp-server.js index a2b3472..ea989c2 100644 --- a/src/smtp-server.js +++ b/src/smtp-server.js @@ -110,6 +110,8 @@ export class IncomingSMTPServer { to: session.envelope.rcptTo?.map((r) => r.address) || parsed.to?.value.map((t) => t.address) || [], }, + // Preserve sender display name if it exists + fromName: parsed.from?.value[0]?.name || parsed.from?.text || null, subject: parsed.subject, text: parsed.text, html: parsed.html,