コード例 #1
0
 public ActionResult SendMassEmail()
 {
     SendMemberEmailModel vm = new SendMemberEmailModel();
     vm.MemberRoles = _dataService.GetAllRoles();
     
     return View("SendMemberEmail", vm);
 }
コード例 #2
0
        public ActionResult SendMassEmail(SendMemberEmailModel viewModel)
        {
            //if (!ModelState.IsValid)
            //{
            //    viewModel.MemberRoles = _dataService.GetAllRoles();
            //    return View("SendMemberEmail", viewModel);
            //}
                

            List<Member> members = _dataService.GetDistinctMembersForRoles(viewModel.SendToRoles);
            ProfileCommon profile = HttpContext.Profile as ProfileCommon;
            MailMessage message = new System.Net.Mail.MailMessage()
            {
                Subject = viewModel.Subject,
                Body = viewModel.EmailText,
                From = new MailAddress("*****@*****.**"),
                IsBodyHtml = true
            };

            int count = 0;
            foreach (var member in members)
            {
                if (String.IsNullOrEmpty(member.Login.Email) || member.Login.Email.Trim() == String.Empty)
                    continue;

                MailAddress address = null;
                try
                {
                    address = new MailAddress(member.Login.Email);
                }
                catch (FormatException ex)
                {
                    LogError("Error while trying to send email to member " + member.Id + " (" + member.FullName + "). Exception:\n" + ex.ToString());
                    continue;
                }

                //int number = members.Count(m => m.Id == member.Id);
                //System.Diagnostics.Debug.Assert(number == 1);

                message.To.Clear();
                message.To.Add(new MailAddress(member.Login.Email));
                SendEmail(message);

                count++;
            }

            SendEmailConfirmationModel vm = new SendEmailConfirmationModel()
            {
                SentNumber = count
            };

            return View("SendEmailConfirmation", vm);
        }