From b556fd40b5cb3648d5ecf1ccdcd71ac5b7e2552c Mon Sep 17 00:00:00 2001 From: Kristina <7614497+khjrtbrg@users.noreply.github.com> Date: Mon, 27 Apr 2026 09:53:17 +0200 Subject: [PATCH] [web] support email sender customization for email notifications (#33035) GitOrigin-RevId: 9aa298c233c1f314ef3bdb381c20692bd0d4e212 --- services/web/app/src/Features/Email/EmailSender.mjs | 2 +- services/web/test/unit/src/Email/EmailSender.test.mjs | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/services/web/app/src/Features/Email/EmailSender.mjs b/services/web/app/src/Features/Email/EmailSender.mjs index 82dbbc157d..5eaef54202 100644 --- a/services/web/app/src/Features/Email/EmailSender.mjs +++ b/services/web/app/src/Features/Email/EmailSender.mjs @@ -97,7 +97,7 @@ async function sendEmail(options, emailType) { metrics.inc('email') const sendMailOptions = { to: options.to, - from: EMAIL_SETTINGS.fromAddress || '', + from: options.from || EMAIL_SETTINGS.fromAddress || '', subject: options.subject, html: options.html, text: options.text, diff --git a/services/web/test/unit/src/Email/EmailSender.test.mjs b/services/web/test/unit/src/Email/EmailSender.test.mjs index 6b0c75004f..2bf0861f43 100644 --- a/services/web/test/unit/src/Email/EmailSender.test.mjs +++ b/services/web/test/unit/src/Email/EmailSender.test.mjs @@ -99,6 +99,14 @@ describe('EmailSender', function () { }) }) + it('should use opts.from as override for settings fromAddress when provided', async function (ctx) { + ctx.opts.from = 'no-reply@example.com' + await ctx.EmailSender.promises.sendEmail(ctx.opts) + expect(ctx.sesClient.sendMail).to.have.been.calledWithMatch({ + from: 'no-reply@example.com', + }) + }) + it('should not send an email when the rate limiter says no', async function (ctx) { ctx.opts.sendingUser_id = '12321312321' ctx.rateLimiter.consume.rejects({ remainingPoints: 0 })