diff --git a/packages/api/src/entity/received_email.ts b/packages/api/src/entity/received_email.ts index b68289989..cb5e5937c 100644 --- a/packages/api/src/entity/received_email.ts +++ b/packages/api/src/entity/received_email.ts @@ -33,6 +33,12 @@ export class ReceivedEmail { @Column('text') html!: string + @Column('text') + replyTo?: string + + @Column('text') + reply?: string + @Column('text') type!: 'article' | 'non-article' diff --git a/packages/api/src/routers/svc/emails.ts b/packages/api/src/routers/svc/emails.ts index 3d5075cd1..eda01a541 100644 --- a/packages/api/src/routers/svc/emails.ts +++ b/packages/api/src/routers/svc/emails.ts @@ -27,6 +27,7 @@ interface EmailMessage { text: string forwardedFrom?: string receivedEmailId: string + replyTo?: string } function isEmailMessage(data: any): data is EmailMessage { @@ -165,7 +166,9 @@ export function emailsServiceRouter() { req.body.subject, req.body.text, req.body.html, - user.id + user.id, + 'non-article', + req.body.replyTo ) analytics.capture({ diff --git a/packages/api/src/schema.ts b/packages/api/src/schema.ts index 0c64a00e5..0d1f3d501 100755 --- a/packages/api/src/schema.ts +++ b/packages/api/src/schema.ts @@ -2547,6 +2547,8 @@ const schema = gql` type: String! text: String! html: String + replyTo: String + reply: String createdAt: Date! } diff --git a/packages/api/src/services/received_emails.ts b/packages/api/src/services/received_emails.ts index b1ea031af..003c82d9d 100644 --- a/packages/api/src/services/received_emails.ts +++ b/packages/api/src/services/received_emails.ts @@ -8,7 +8,8 @@ export const saveReceivedEmail = async ( text: string, html: string, userId: string, - type: 'article' | 'non-article' = 'non-article' + type: 'article' | 'non-article' = 'non-article', + replyTo?: string ): Promise => { return authTrx( (t) => @@ -20,6 +21,7 @@ export const saveReceivedEmail = async ( html, type, user: { id: userId }, + replyTo, }), undefined, userId diff --git a/packages/inbound-email-handler/src/index.ts b/packages/inbound-email-handler/src/index.ts index eefadb6a3..391244e35 100644 --- a/packages/inbound-email-handler/src/index.ts +++ b/packages/inbound-email-handler/src/index.ts @@ -120,6 +120,7 @@ export const inboundEmailHandler = Sentry.GCPFunction.wrapHttpFunction( // original sender email address const from = parsed['from'] + const replyTo = parsed['reply-to'] const subject = parsed['subject'] const html = parsed['html'] const text = parsed['text'] @@ -140,6 +141,7 @@ export const inboundEmailHandler = Sentry.GCPFunction.wrapHttpFunction( subject, html, text, + replyTo, }) try {