From 0a2598e296dbdaab913724bb8b099307e03d27ae Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Fri, 14 Apr 2023 18:48:24 +0800 Subject: [PATCH] Parse the author name from email address --- packages/inbound-email-handler/src/index.ts | 3 ++- packages/inbound-email-handler/src/newsletter.ts | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/inbound-email-handler/src/index.ts b/packages/inbound-email-handler/src/index.ts index 42d86f9eb..47c3e502d 100644 --- a/packages/inbound-email-handler/src/index.ts +++ b/packages/inbound-email-handler/src/index.ts @@ -16,6 +16,7 @@ import { handleGoogleConfirmationEmail, isGoogleConfirmationEmail, isSubscriptionConfirmationEmail, + parseAuthor, parseUnsubscribe, } from './newsletter' import { handlePdfAttachment } from './pdf' @@ -182,7 +183,7 @@ export const inboundEmailHandler = Sentry.GCPFunction.wrapHttpFunction( content: html, url: generateUniqueUrl(), title: subject, - author: from, + author: parseAuthor(from), text, unsubMailTo: unsubscribe.mailTo, unsubHttpUrl: unsubscribe.httpUrl, diff --git a/packages/inbound-email-handler/src/newsletter.ts b/packages/inbound-email-handler/src/newsletter.ts index b3686b20e..715a8a6b6 100644 --- a/packages/inbound-email-handler/src/newsletter.ts +++ b/packages/inbound-email-handler/src/newsletter.ts @@ -34,6 +34,14 @@ const parseAddress = (address: string): string => { return '' } +export const parseAuthor = (address: string): string => { + const parsed = addressparser(address) + if (parsed.length > 0) { + return parsed[0].name + } + return address +} + export const handleGoogleConfirmationEmail = async ( email: string, subject: string