/// <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; }
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); }
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); } }