From e7fc1316ddf577dba7212f08828f837330353425 Mon Sep 17 00:00:00 2001 From: Hongbo Wu Date: Tue, 9 Apr 2024 11:09:02 +0800 Subject: [PATCH] enqueue reply email job --- packages/api/src/jobs/send_email.ts | 8 ++++---- packages/api/src/resolvers/recent_emails/index.ts | 5 +++-- packages/api/src/services/send_emails.ts | 6 +++--- 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/api/src/jobs/send_email.ts b/packages/api/src/jobs/send_email.ts index 8831fd970..1c94174f1 100644 --- a/packages/api/src/jobs/send_email.ts +++ b/packages/api/src/jobs/send_email.ts @@ -9,7 +9,8 @@ export const SEND_EMAIL_JOB = 'send-email' type ContentType = { html: string } | { text: string } | { templateId: string } export type SendEmailJobData = Merge< { - emailAddress: string + to: string + from?: string subject?: string html?: string text?: string @@ -21,7 +22,7 @@ export type SendEmailJobData = Merge< export const sendEmailJob = async (data: SendEmailJobData) => { if (process.env.USE_MAILJET && data.dynamicTemplateData) { - return sendWithMailJet(data.emailAddress, data.dynamicTemplateData.link) + return sendWithMailJet(data.to, data.dynamicTemplateData.link) } if (!data.html && !data.text && !data.templateId) { @@ -31,7 +32,6 @@ export const sendEmailJob = async (data: SendEmailJobData) => { return sendEmail({ ...data, - from: env.sender.message, - to: data.emailAddress, + from: data.from || env.sender.message, }) } diff --git a/packages/api/src/resolvers/recent_emails/index.ts b/packages/api/src/resolvers/recent_emails/index.ts index a21cd496a..30f69e979 100644 --- a/packages/api/src/resolvers/recent_emails/index.ts +++ b/packages/api/src/resolvers/recent_emails/index.ts @@ -17,6 +17,7 @@ import { import { getRepository } from '../../repository' import { updateReceivedEmail } from '../../services/received_emails' import { saveNewsletter } from '../../services/save_newsletter_email' +import { enqueueSendEmail } from '../../utils/createTask' import { authorized } from '../../utils/gql-utils' import { generateUniqueUrl, parseEmailAddress } from '../../utils/parser' import { sendEmail } from '../../utils/sendEmail' @@ -143,7 +144,7 @@ export const replyToEmailResolver = authorized< const reply = 'Okay' - const result = await sendEmail({ + const result = await enqueueSendEmail({ to: recentEmail.replyTo || recentEmail.from, // send to the reply-to address if it exists or the from address subject: 'Re: ' + recentEmail.subject, text: reply, @@ -154,6 +155,6 @@ export const replyToEmailResolver = authorized< await repo.update(recentEmailId, { reply }) return { - success: result, + success: !!result, } }) diff --git a/packages/api/src/services/send_emails.ts b/packages/api/src/services/send_emails.ts index 70dfb019f..69a537bdb 100644 --- a/packages/api/src/services/send_emails.ts +++ b/packages/api/src/services/send_emails.ts @@ -18,7 +18,7 @@ export const sendNewAccountVerificationEmail = async (user: { } const result = await enqueueSendEmail({ - emailAddress: user.email, + to: user.email, dynamicTemplateData: dynamicTemplateData, templateId: env.sendgrid.confirmationTemplateId, }) @@ -78,7 +78,7 @@ export const sendAccountChangeEmail = async (user: { } const result = await enqueueSendEmail({ - emailAddress: user.email, + to: user.email, dynamicTemplateData: dynamicTemplateData, templateId: env.sendgrid.verificationTemplateId, }) @@ -100,7 +100,7 @@ export const sendPasswordResetEmail = async (user: { } const result = await enqueueSendEmail({ - emailAddress: user.email, + to: user.email, dynamicTemplateData: dynamicTemplateData, templateId: env.sendgrid.resetPasswordTemplateId, })