From 6ade8306052678db05308484dd128aa4ad9f5398 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Thu, 23 Mar 2023 18:33:32 +0800 Subject: [PATCH] To in the envelope will always be a single-element array --- packages/inbound-email-handler/src/index.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/inbound-email-handler/src/index.ts b/packages/inbound-email-handler/src/index.ts index 201f5a4fb..2b83f3d77 100644 --- a/packages/inbound-email-handler/src/index.ts +++ b/packages/inbound-email-handler/src/index.ts @@ -22,6 +22,11 @@ interface SaveReceivedEmailResponse { id: string } +interface Envelope { + to: string[] + from: string +} + const signToken = promisify(jwt.sign) const NEWSLETTER_EMAIL_RECEIVED_TOPIC = 'newsletterEmailReceived' @@ -71,11 +76,8 @@ const saveReceivedEmail = async ( export const parsedTo = (parsed: Record): string => { // envelope to contains the real recipient email address try { - const envelope = JSON.parse(parsed.envelope) as Record< - string, - string | string[] - > - return envelope.to.toString().split(',')[0] || parsed.to + const envelope = JSON.parse(parsed.envelope) as Envelope + return envelope.to[0] } catch (err) { return parsed.to }