From b6917b9deea052ba8518e1db47682a1b99b09ea7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bar=C4=B1=C5=9F=20Soner=20U=C5=9Fakl=C4=B1?= Date: Fri, 4 Sep 2020 22:12:42 -0400 Subject: [PATCH] feat: #8602, dont send emails to unconfirmed addresses --- src/emailer.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/emailer.js b/src/emailer.js index d9a13755a7..e65a647365 100644 --- a/src/emailer.js +++ b/src/emailer.js @@ -174,7 +174,7 @@ Emailer.send = async function (template, uid, params) { params = { ...Emailer._defaultPayload, ...params }; const [userData, userSettings] = await Promise.all([ - User.getUserFields(uid, ['email', 'username']), + User.getUserFields(uid, ['email', 'username', 'email:confirmed']), User.getSettings(uid), ]); @@ -182,6 +182,13 @@ Emailer.send = async function (template, uid, params) { winston.warn('uid : ' + uid + ' has no email, not sending.'); return; } + + const allowedTpls = ['verify_email', 'welcome', 'registration_accepted']; + if (meta.config.requireEmailConfirmation && !userData['email:confirmed'] && !allowedTpls.includes(template)) { + winston.warn('uid : ' + uid + ' has not confirmed email, not sending "' + template + '" email.'); + return; + } + params.uid = uid; params.username = userData.username; params.rtl = await translator.translate('[[language:dir]]', userSettings.userLang) === 'rtl';