From b8cd731b0d87323f379d2094455d47a2ed5b9e55 Mon Sep 17 00:00:00 2001 From: Elitsa Marinovska Date: Thu, 11 Nov 2021 15:07:51 +0100 Subject: [PATCH] Don't send null but fall back to the user's email in case SMPT settings are not configured in appsettings --- src/Umbraco.Web.BackOffice/Controllers/UsersController.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Umbraco.Web.BackOffice/Controllers/UsersController.cs b/src/Umbraco.Web.BackOffice/Controllers/UsersController.cs index 672495c7eb..79e7838110 100644 --- a/src/Umbraco.Web.BackOffice/Controllers/UsersController.cs +++ b/src/Umbraco.Web.BackOffice/Controllers/UsersController.cs @@ -525,6 +525,9 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers var user = await _userManager.FindByIdAsync(((int) userDisplay.Id).ToString()); var token = await _userManager.GenerateEmailConfirmationTokenAsync(user); + // Use info from SMTP Settings if configured, otherwise set fromEmail as fallback + var senderEmail = !string.IsNullOrEmpty(_globalSettings.Smtp?.From) ? _globalSettings.Smtp.From : fromEmail; + var inviteToken = string.Format("{0}{1}{2}", (int)userDisplay.Id, WebUtility.UrlEncode("|"), @@ -550,14 +553,14 @@ namespace Umbraco.Cms.Web.BackOffice.Controllers var emailBody = _localizedTextService.Localize("user","inviteEmailCopyFormat", //Ensure the culture of the found user is used for the email! UmbracoUserExtensions.GetUserCulture(to.Language, _localizedTextService, _globalSettings), - new[] { userDisplay.Name, from, message, inviteUri.ToString(), fromEmail }); + new[] { userDisplay.Name, from, message, inviteUri.ToString(), senderEmail }); // This needs to be in the correct mailto format including the name, else // the name cannot be captured in the email sending notification. // i.e. "Some Person" var toMailBoxAddress = new MailboxAddress(to.Name, to.Email); - var mailMessage = new EmailMessage(null /*use info from smtp settings*/, toMailBoxAddress.ToString(), emailSubject, emailBody, true); + var mailMessage = new EmailMessage(senderEmail, toMailBoxAddress.ToString(), emailSubject, emailBody, true); await _emailSender.SendAsync(mailMessage, Constants.Web.EmailTypes.UserInvite, true); }