public SendEmailAsync ( |
||
smtpOptions | ||
to | string | |
from | string | |
subject | string | |
plainTextMessage | string | |
htmlMessage | string | |
replyTo | string | |
Résultat | System.Threading.Tasks.Task |
public async Task SendAccountConfirmationEmailAsync( ISiteSettings siteSettings, string toAddress, string subject, string confirmationUrl) { SmtpOptions smtpOptions = GetSmptOptions(siteSettings); string plainTextTemplate = templateService.GetPlainTextTemplate(MessagePurpose.ConfirmAccount, CultureInfo.CurrentUICulture.Name); string plainTextMessage = string.Format(plainTextTemplate, confirmationUrl); string htmlTemplate = templateService.GetHtmlTemplate(MessagePurpose.ConfirmAccount, CultureInfo.CurrentUICulture.Name); string htmlMessage = string.Format(htmlTemplate, confirmationUrl); EmailSender sender = new EmailSender(); await sender.SendEmailAsync( smtpOptions, toAddress, siteSettings.DefaultEmailFromAddress, subject, plainTextMessage, htmlMessage); }
public async Task SendSecurityCodeEmailAsync( ISiteSettings siteSettings, string toAddress, string subject, string securityCode) { SmtpOptions smtpOptions = GetSmptOptions(siteSettings); string plainTextTemplate = templateService.GetPlainTextTemplate(MessagePurpose.SendSecurityCode, ""); string plainTextMessage = string.Format(plainTextTemplate, securityCode); string htmlTemplate = templateService.GetHtmlTemplate(MessagePurpose.SendSecurityCode, ""); string htmlMessage = string.Format(htmlTemplate, securityCode); EmailSender sender = new EmailSender(); await sender.SendEmailAsync( smtpOptions, toAddress, siteSettings.DefaultEmailFromAddress, subject, plainTextMessage, htmlMessage); }
public async Task SendPasswordResetEmailAsync( ISiteSettings siteSettings, string toAddress, string subject, string resetUrl) { SmtpOptions smtpOptions = GetSmptOptions(siteSettings); if (smtpOptions == null) { var logMessage = $"failed to send password reset email because smtp settings are not populated for site {siteSettings.SiteName}"; log.LogError(logMessage); return; } string plainTextTemplate = templateService.GetPlainTextTemplate(MessagePurpose.PasswordReset, CultureInfo.CurrentUICulture.Name); string plainTextMessage = string.Format( CultureInfo.InvariantCulture, plainTextTemplate, siteSettings.SiteName, //maybe this should be the site url? resetUrl); string htmlTemplate = templateService.GetHtmlTemplate(MessagePurpose.PasswordReset, CultureInfo.CurrentUICulture.Name); string htmlMessage = string.Format( CultureInfo.InvariantCulture, htmlTemplate, siteSettings.SiteName, resetUrl); EmailSender sender = new EmailSender(); // in account controller we are calling this method without await // so it doesn't block the UI. Which means it is running on a background thread // similar as the old ThreadPool.QueueWorkItem // as such we need to handle any error that may happen so it doesn't // brind down the thread or the process try { await sender.SendEmailAsync( smtpOptions, toAddress, siteSettings.DefaultEmailFromAddress, subject, plainTextMessage, htmlMessage).ConfigureAwait(false); } catch(Exception ex) { log.LogError("error sending password reset email", ex); } }
public async Task SendAccountConfirmationEmailAsync( ISiteSettings siteSettings, string toAddress, string subject, string confirmationUrl) { SmtpOptions smtpOptions = GetSmptOptions(siteSettings); if(smtpOptions == null) { var logMessage = $"failed to send account confirmation email because smtp settings are not populated for site {siteSettings.SiteName}"; log.LogError(logMessage); return; } string plainTextTemplate = templateService.GetPlainTextTemplate(MessagePurpose.ConfirmAccount, CultureInfo.CurrentUICulture.Name); string plainTextMessage = string.Format(plainTextTemplate, confirmationUrl); string htmlTemplate = templateService.GetHtmlTemplate(MessagePurpose.ConfirmAccount, CultureInfo.CurrentUICulture.Name); string htmlMessage = string.Format(htmlTemplate, confirmationUrl); EmailSender sender = new EmailSender(); try { await sender.SendEmailAsync( smtpOptions, toAddress, siteSettings.DefaultEmailFromAddress, subject, plainTextMessage, htmlMessage).ConfigureAwait(false); } catch (Exception ex) { log.LogError("error sending account confirmation email", ex); } }
public async Task SendPasswordResetEmailAsync( ISiteContext siteSettings, string toAddress, string subject, string resetUrl) { SmtpOptions smtpOptions = GetSmptOptions(siteSettings); if (smtpOptions == null) { var logMessage = $"failed to send password reset email because smtp settings are not populated for site {siteSettings.SiteName}"; log.LogError(logMessage); return; } EmailSender sender = new EmailSender(); // in account controller we are calling this method without await // so it doesn't block the UI. Which means it is running on a background thread // similar as the old ThreadPool.QueueWorkItem // as such we need to handle any error that may happen so it doesn't // brind down the thread or the process try { var plainTextMessage = await viewRenderer.RenderViewAsString<string>("EmailTemplates/PasswordResetTextEmail", resetUrl); var htmlMessage = await viewRenderer.RenderViewAsString<string>("EmailTemplates/PasswordResetHtmlEmail", resetUrl); await sender.SendEmailAsync( smtpOptions, toAddress, smtpOptions.DefaultEmailFromAddress, subject, plainTextMessage, htmlMessage).ConfigureAwait(false); } catch (Exception ex) { log.LogError("error sending password reset email", ex); } }
public async Task SendAccountConfirmationEmailAsync( ISiteContext siteSettings, string toAddress, string subject, string confirmationUrl) { SmtpOptions smtpOptions = GetSmptOptions(siteSettings); if (smtpOptions == null) { var logMessage = $"failed to send account confirmation email because smtp settings are not populated for site {siteSettings.SiteName}"; log.LogError(logMessage); return; } EmailSender sender = new EmailSender(); try { var plainTextMessage = await viewRenderer.RenderViewAsString<string>("EmailTemplates/ConfirmAccountTextEmail", confirmationUrl).ConfigureAwait(false); var htmlMessage = await viewRenderer.RenderViewAsString<string>("EmailTemplates/ConfirmAccountHtmlEmail", confirmationUrl).ConfigureAwait(false); await sender.SendEmailAsync( smtpOptions, toAddress, smtpOptions.DefaultEmailFromAddress, subject, plainTextMessage, htmlMessage).ConfigureAwait(false); } catch (Exception ex) { log.LogError("error sending account confirmation email", ex); } }