fix: #13198, use email from confirmObj

if includeUnverifiedEmails setting is turned on.
userData.email is set to the unconfirmed email
This commit is contained in:
Barış Soner Uşaklı
2025-02-24 10:52:41 -05:00
parent b2cdd5fdb7
commit b4dfc48b04

View File

@@ -223,6 +223,13 @@ Emailer.send = async (template, uid, params) => {
// 'welcome' and 'verify-email' explicitly used passed-in email address
if (['welcome', 'verify-email'].includes(template)) {
userData.email = params.email;
} else if (meta.config.includeUnverifiedEmails && !userData.email) {
// get unconfirmed email to use
const code = await db.get(`confirm:byUid:${uid}`);
const confirmObj = code ? await db.getObject(`confirm:${code}`) : null;
if (confirmObj && confirmObj.email) {
userData.email = String(confirmObj.email);
}
}
({ template, userData, params } = await Plugins.hooks.fire('filter:email.prepare', { template, uid, userData, params }));