public IActionResult Index() { var mergeRequests = _context.MergeRequests.Where(r => r.SubmitAt < Now.AddDays(1).Date&& r.SubmitAt >= Now.Date).ToList(); var mergeRequestsContent = _mergeRequestMailGenerator.GenerateMergeRequests(mergeRequests); var mailBody = _mergeRequestMailGenerator.GenerateMailBody(mergeRequestsContent); var mail = new MergeRequestMail { Receiver = _mailConfig.Value.Receiver, Cc = _mailConfig.Value.Cc, Subject = string.Format(_mailConfig.Value.SubjectTemplate, Now), Content = mailBody }; return(View(mail)); }
public void Send(MergeRequestMail mail) { var client = new SmtpClient(_mailServerConfig.SmtpServer) { UseDefaultCredentials = false, Credentials = new NetworkCredential(_mailServerConfig.UserName, _mailServerConfig.Password), Port = _mailServerConfig.Port, EnableSsl = _mailServerConfig.EnableSsl }; var mailMessage = new MailMessage { From = new MailAddress(_mailServerConfig.FromAddress) }; mail.Receivers.ForEach(receiver => mailMessage.To.Add(receiver)); mail.Ccs.ForEach(cc => mailMessage.CC.Add(cc)); mailMessage.Body = mail.Content; mailMessage.Subject = mail.Subject; client.Send(mailMessage); }
// [TestMethod] need valid config to run public void TestSendingMail() { //if use gmail smtp, turn on this setting to allow sending mail by app //https://myaccount.google.com/lesssecureapps var mailServerConfig = new MailServerConfig { FromAddress = "*****@*****.**", UserName = "******", Password = "******", SmtpServer = "smtp.gmail.com" }; var mailSender = new MergeRequestMailSender(mailServerConfig); var mail = new MergeRequestMail { Receiver = "[email protected];[email protected]", Cc = "[email protected];[email protected]", Content = "test content", Subject = "test subject", TimeStamp = DateTime.Now.ToString("MM/dd/yyyy") }; mailSender.Send(mail); }
public void SendTodayMergeRequestMail() { var mergeRequests = _context.MergeRequests.Where(r => r.SubmitAt < Now.AddDays(1).Date&& r.SubmitAt >= Now.Date).ToList(); if (!mergeRequests.Any()) { return; } var mergeRequestsContent = _mergeRequestMailGenerator.GenerateMergeRequests(mergeRequests); var mailBody = _mergeRequestMailGenerator.GenerateMailBody(mergeRequestsContent); var mailSender = new MergeRequestMailSender(_mailServerConfig.Value); var mail = new MergeRequestMail { Receiver = _mailMessageConfig.Value.Receiver, Cc = _mailMessageConfig.Value.Cc, Content = mailBody, Subject = string.Format(_mailMessageConfig.Value.SubjectTemplate, Now), TimeStamp = Now.ToString("MM/dd/yyyy") }; mailSender.Send(mail); }