From 35aa49e73f0b4c02811a6ed8216088322ab8baeb Mon Sep 17 00:00:00 2001 From: Michael Date: Tue, 4 Apr 2017 18:39:56 -0400 Subject: [PATCH] Pull mail credentials from DB. --- Project-Unite/App_Start/IdentityConfig.cs | 32 ++++++++++++++++------- Project-Unite/Models/AdminViewModels.cs | 7 +++++ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/Project-Unite/App_Start/IdentityConfig.cs b/Project-Unite/App_Start/IdentityConfig.cs index 848daba..ef86a5e 100644 --- a/Project-Unite/App_Start/IdentityConfig.cs +++ b/Project-Unite/App_Start/IdentityConfig.cs @@ -20,20 +20,32 @@ namespace Project_Unite { public Task SendAsync(IdentityMessage message) { - var smtp = new SmtpClient("in-v3.mailjet.com", 25); - smtp.UseDefaultCredentials = false; - smtp.Credentials = new NetworkCredential("fcc885a166c73e91ba6592345f64dfeb", "84b7c56e71b6c9bd1b26a98222494823"); - var sMsg = new MailMessage("sys@michaeltheshifter.me", message.Destination); - - sMsg.Body = @" + try + { + var siteConfig = new ApplicationDbContext().Configs.FirstOrDefault(); + + var smtp = new SmtpClient(siteConfig.SMTPServer, siteConfig.SMTPPort); + smtp.UseDefaultCredentials = false; + smtp.Credentials = new NetworkCredential(siteConfig.SMTPUsername, siteConfig.SMTPPassword); + var sMsg = new MailMessage(siteConfig.SMTPReturnAddress, message.Destination); + + sMsg.Body = @"

Message from the ShiftOS staff

" + CommonMark.CommonMarkConverter.Convert(message.Body) + "

"; - sMsg.Subject = "[ShiftOS (Project: Unite)] " + message.Subject; - sMsg.IsBodyHtml = true; - smtp.Send(sMsg); - + sMsg.Subject = $"[{siteConfig.SiteName}] " + message.Subject; + sMsg.IsBodyHtml = true; + smtp.Send(sMsg); + } + catch (Exception ex) + { + var db = new ApplicationDbContext(); + db.AuditLogs.Add(new AuditLog("system", AuditLogLevel.Admin, $@"Failed to send email: + +{ex}")); + db.SaveChanges(); + } return Task.FromResult(0); } } diff --git a/Project-Unite/Models/AdminViewModels.cs b/Project-Unite/Models/AdminViewModels.cs index 5e4d562..23935d3 100644 --- a/Project-Unite/Models/AdminViewModels.cs +++ b/Project-Unite/Models/AdminViewModels.cs @@ -100,5 +100,12 @@ namespace Project_Unite.Models public string ReturnEmail { get; set; } public string UniteBotToken { get; set; } public string DiscordChannelId { get; set; } + + public string SMTPServer { get; set; } + public int SMTPPort { get; set; } + public string SMTPUsername { get; set; } + public string SMTPPassword { get; set; } + public bool UseTLSEncryption { get; set; } + public string SMTPReturnAddress { get; set; } } } \ No newline at end of file