From d7eb5f0f7a17472c66905c459926fbe1037fe433 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Wed, 8 Mar 2017 21:11:19 -0500 Subject: [PATCH] update to sendgrid 9.x --- src/Core/Core.csproj | 2 +- .../Implementations/SendGridMailService.cs | 58 +++++++++---------- 2 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/Core/Core.csproj b/src/Core/Core.csproj index 1aad629c96..1e63279db0 100644 --- a/src/Core/Core.csproj +++ b/src/Core/Core.csproj @@ -18,7 +18,7 @@ - + diff --git a/src/Core/Services/Implementations/SendGridMailService.cs b/src/Core/Services/Implementations/SendGridMailService.cs index 833447bf74..88fee79279 100644 --- a/src/Core/Services/Implementations/SendGridMailService.cs +++ b/src/Core/Services/Implementations/SendGridMailService.cs @@ -1,9 +1,9 @@ using System; using System.Collections.Generic; -using System.Net.Mail; using System.Threading.Tasks; using Bit.Core.Domains; using SendGrid; +using SendGrid.Helpers.Mail; namespace Bit.Core.Services { @@ -19,12 +19,12 @@ namespace Bit.Core.Services private const string MarketingCategoryName = "Marketing"; private readonly GlobalSettings _globalSettings; - private readonly Web _web; + private readonly SendGridClient _client; public SendGridMailService(GlobalSettings globalSettings) { _globalSettings = globalSettings; - _web = new Web(_globalSettings.Mail.ApiKey); + _client = new SendGridClient(_globalSettings.Mail.ApiKey); } public async Task SendWelcomeEmailAsync(User user) @@ -32,10 +32,10 @@ namespace Bit.Core.Services var message = CreateDefaultMessage(WelcomeTemplateId); message.Subject = "Welcome"; - message.AddTo(user.Email); - message.SetCategories(new List { AdministrativeCategoryName, "Welcome" }); + message.AddTo(new EmailAddress(user.Email)); + message.AddCategories(new List { AdministrativeCategoryName, "Welcome" }); - await _web.DeliverAsync(message); + await _client.SendEmailAsync(message); } public async Task SendChangeEmailAlreadyExistsEmailAsync(string fromEmail, string toEmail) @@ -43,12 +43,12 @@ namespace Bit.Core.Services var message = CreateDefaultMessage(ChangeEmailAlreadyExistsTemplateId); message.Subject = "Your Email Change"; - message.AddTo(toEmail); - message.AddSubstitution("{{fromEmail}}", new List { fromEmail }); - message.AddSubstitution("{{toEmail}}", new List { toEmail }); - message.SetCategories(new List { AdministrativeCategoryName, "Change Email Alrady Exists" }); + message.AddTo(new EmailAddress(toEmail)); + message.AddSubstitution("{{fromEmail}}", fromEmail); + message.AddSubstitution("{{toEmail}}", toEmail); + message.AddCategories(new List { AdministrativeCategoryName, "Change Email Alrady Exists" }); - await _web.DeliverAsync(message); + await _client.SendEmailAsync(message); } public async Task SendChangeEmailEmailAsync(string newEmailAddress, string token) @@ -56,12 +56,12 @@ namespace Bit.Core.Services var message = CreateDefaultMessage(ChangeEmailTemplateId); message.Subject = "Change Your Email"; - message.AddTo(newEmailAddress); - message.AddSubstitution("{{token}}", new List { Uri.EscapeDataString(token) }); - message.SetCategories(new List { AdministrativeCategoryName, "Change Email" }); - message.DisableBypassListManagement(); + message.AddTo(new EmailAddress(newEmailAddress)); + message.AddSubstitution("{{token}}", Uri.EscapeDataString(token)); + message.AddCategories(new List { AdministrativeCategoryName, "Change Email" }); + message.SetBypassListManagement(true); - await _web.DeliverAsync(message); + await _client.SendEmailAsync(message); } public async Task SendNoMasterPasswordHintEmailAsync(string email) @@ -69,10 +69,10 @@ namespace Bit.Core.Services var message = CreateDefaultMessage(NoMasterPasswordHintTemplateId); message.Subject = "Your Master Password Hint"; - message.AddTo(email); - message.SetCategories(new List { AdministrativeCategoryName, "No Master Password Hint" }); + message.AddTo(new EmailAddress(email)); + message.AddCategories(new List { AdministrativeCategoryName, "No Master Password Hint" }); - await _web.DeliverAsync(message); + await _client.SendEmailAsync(message); } public async Task SendMasterPasswordHintEmailAsync(string email, string hint) @@ -80,29 +80,29 @@ namespace Bit.Core.Services var message = CreateDefaultMessage(MasterPasswordHintTemplateId); message.Subject = "Your Master Password Hint"; - message.AddTo(email); - message.AddSubstitution("{{hint}}", new List { hint }); - message.SetCategories(new List { AdministrativeCategoryName, "Master Password Hint" }); + message.AddTo(new EmailAddress(email)); + message.AddSubstitution("{{hint}}", hint); + message.AddCategories(new List { AdministrativeCategoryName, "Master Password Hint" }); - await _web.DeliverAsync(message); + await _client.SendEmailAsync(message); } private SendGridMessage CreateDefaultMessage(string templateId) { var message = new SendGridMessage { - From = new MailAddress(_globalSettings.Mail.ReplyToEmail, _globalSettings.SiteName), - Html = " ", - Text = " " + From = new EmailAddress(_globalSettings.Mail.ReplyToEmail, _globalSettings.SiteName), + HtmlContent = " ", + PlainTextContent = " " }; if(!string.IsNullOrWhiteSpace(templateId)) { - message.EnableTemplateEngine(templateId); + message.TemplateId = templateId; } - message.AddSubstitution("{{siteName}}", new List { _globalSettings.SiteName }); - message.AddSubstitution("{{baseVaultUri}}", new List { _globalSettings.BaseVaultUri }); + message.AddSubstitution("{{siteName}}", _globalSettings.SiteName); + message.AddSubstitution("{{baseVaultUri}}", _globalSettings.BaseVaultUri); return message; }