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);
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        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);
        }