コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
//        [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);
        }
コード例 #4
0
        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);
        }