コード例 #1
0
        /// <summary>
        /// Configures Email Action
        /// </summary>
        /// <param name="action">Task Action to be configured</param>
        /// <param name="actionInfo">Object containing the information to be configured</param>
        private static void ConfigureEmailAction(IAction action, Entities.Action actionInfo)
        {
            IEmailAction    mailAction  = action as IEmailAction;
            SendEmailAction emailAction = actionInfo as SendEmailAction;

            mailAction.From    = emailAction.From;
            mailAction.To      = emailAction.To;
            mailAction.Server  = emailAction.SMTPServer;
            mailAction.Subject = emailAction.Subject;
            mailAction.Body    = emailAction.MessageBody;
        }
コード例 #2
0
ファイル: Sender.cs プロジェクト: whoisyourvladie/Oauth
        private static void Send(string language, EmailTemplate templateId, Notification notification)
        {
            var emailAction = new SendEmailAction {
                EmailToList = new List <XmlEmail>(), TemplateId = templateId
            };

            emailAction.EmailToList.Add(new XmlEmail {
                Email = notification.Email
            });

            var    parser  = new RazorParser(language);
            string subject = parser.ParseSubject(emailAction, notification);
            string body    = parser.ParseTemplate(emailAction, notification, subject);

            EmailManager.Send(emailAction, subject, body);
        }
コード例 #3
0
        private Status ProcessEmail(Email email)
        {
            try
            {
                var             parser  = new RazorParser(email.LanguageId);
                SendEmailAction entity  = null;
                var             entity0 = XMLSerializer.DeserializeObject <SendEmailAction2>(email.EmailCustomParam);

                //сделано чтоб залогировать miss templates matching
                if (entity0.EmailTemplateValue == EmailTemplate.None)
                {
                    throw new Exception("Couldn't find template: " + entity0.EmailTemplateDBValue + ". Will use [" + entity0.TemplateId + "] template");
                }
                else
                {
                    entity             = new SendEmailAction();
                    entity.EmailToList = entity0.EmailToList;
                    entity.TemplateId  = entity0.EmailTemplateValue;
                }


                object model;
                string body    = parser.ParseTemplateAsync(entity, email.ModelCustomParam, out model);
                string subject = parser.ParseSubject(entity, model);

                var templateName = Enum.GetName(typeof(EmailTemplate), entity.TemplateId);
                _logger.Info("try to send an email({0}): {1}", templateName, entity.EmailToList.FirstOrDefault().Email);
                EmailManager.Send(entity, subject, body);
                _logger.Info("email has been sent successfully: {0}", email.Id);

                return(Status.Complete);
            }
            catch (Exception exc)
            {
                _logger.Info("email hasn't been sent successfully");
                _errorsLogger.Error(exc, "email hasn't been sent successfully: email.Id = {0}; Exc: {1}", email.Id, exc.Message);
                return(Status.Error);
            }
        }