private void SendUpdateEmail(int accountId, int neverBounceRequestId, int userId) { if (neverBounceRequestId != 0 & accountId != 0) { Guid loginToken = new Guid(); string accountPrimaryEmail = string.Empty; Email senderEmail = new Email(); Account account = accountService.GetAccountMinDetails(accountId); string toEmail = ConfigurationManager.AppSettings["NeverBounce_Update_Email"]; if (account != null && !string.IsNullOrEmpty(toEmail)) { if (account.Email != null) { accountPrimaryEmail = account.Email.EmailId; } IEnumerable <ServiceProvider> serviceProviders = serviceProviderRepository.GetAccountCommunicationProviders(accountId, CommunicationType.Mail, MailType.TransactionalEmail); if (serviceProviders != null && serviceProviders.FirstOrDefault() != null) { loginToken = serviceProviders.FirstOrDefault().LoginToken; senderEmail = serviceProviderRepository.GetServiceProviderEmail(serviceProviders.FirstOrDefault().Id); } var tomails = toEmail.Split(','); foreach (string ToMail in tomails) { if (loginToken != new Guid() && accountPrimaryEmail != null) { string fromEmail = (senderEmail != null && !string.IsNullOrEmpty(senderEmail.EmailId)) ? senderEmail.EmailId : accountPrimaryEmail; EmailAgent agent = new EmailAgent(); SendMailRequest mailRequest = new SendMailRequest(); mailRequest.Body = GetBody(neverBounceRequestId, accountId, userId); mailRequest.From = fromEmail; mailRequest.IsBodyHtml = true; mailRequest.ScheduledTime = DateTime.Now.ToUniversalTime().AddSeconds(5); mailRequest.Subject = string.Format("{0} - Email List Finished Validating", account.AccountName); mailRequest.To = new List <string>() { ToMail }; mailRequest.TokenGuid = loginToken; mailRequest.RequestGuid = Guid.NewGuid(); mailRequest.AccountDomain = account.DomainURL; mailRequest.CategoryID = (byte)EmailNotificationsCategory.MailTesterEmail; mailRequest.AccountID = accountId; agent.SendEmail(mailRequest); } } } } }
private bool EmailSend(string subject, string emailBody, string toEmail, int accountId, int userId) { Logger.Current.Informational("In Email Send Method: " + toEmail); var success = false; var mailService = new MailService(); ServiceProviderViewModel serviceProviderViewModel = communicationService.GetAccountServiceProviders(new GetServiceProviderRequest() { CommunicationTypeId = CommunicationType.Mail, AccountId = accountId, MailType = MailType.TransactionalEmail }).ServiceProviderViewModel.FirstOrDefault(); MailRegistrationDb mailRegistration = mailService.GetMailRegistrationDetails(serviceProviderViewModel.LoginToken); LandmarkIT.Enterprise.CommunicationManager.Requests.SendMailRequest sendMailRequest = new LandmarkIT.Enterprise.CommunicationManager.Requests.SendMailRequest(); var senderEmail = serviceProviderRepository.GetServiceProviderEmail(serviceProviderViewModel.CommunicationLogID); sendMailRequest.TokenGuid = mailRegistration.Guid; sendMailRequest.RequestGuid = Guid.NewGuid(); sendMailRequest.IsBodyHtml = true; sendMailRequest.From = senderEmail.EmailId; sendMailRequest.Subject = subject; sendMailRequest.ScheduledTime = DateTime.Now.ToUniversalTime().AddSeconds(5); sendMailRequest.Body = emailBody; sendMailRequest.DisplayName = mailRegistration.Name; sendMailRequest.To = new List <string>() { toEmail }; sendMailRequest.CategoryID = (short)EmailNotificationsCategory.InvalidCouponReport; sendMailRequest.AccountID = accountId; try { mailService.Send(sendMailRequest); success = true; } catch (Exception ex) { ex.Data.Clear(); ex.Data.Add("AccountId", accountId); ex.Data.Add("UserID", userId); ex.Data.Add("TO Email", toEmail); Logger.Current.Error("Error while sending email through transaction provider ", ex); success = false; } return(success); }