public bool Execute(IEmailUserTaskMessageProvider messageProvider, ProcessExecutingContext context) { EmailTemplateUserTask userTask = messageProvider.EmailUserTask; EmailMessage message = messageProvider.GetEmailMessage(); if (message.To.IsNullOrEmpty()) { return(true); } if (message.From.IsEmpty()) { SendEmailWithDefaultSender(message, userTask.IgnoreErrors); return(true); } var constructorArguments = new ConstructorArgument("userConnection", UserConnection); var emailClientFactory = ClassFactory.Get <EmailClientFactory>(constructorArguments); var emailSender = new HtmlEmailMessageSender(emailClientFactory, UserConnection); try { bool ignoreRights = (SendEmailType)userTask.SendEmailType == SendEmailType.Auto; emailSender.Send(message, ignoreRights); } catch (Exception e) { _log.Error(e); if (!userTask.IgnoreErrors) { throw; } } return(true); }
private static HtmlEmailMessageSender GetEmailSender(UserConnection userConnection) { var emailClientFactory = GetEmailClientFactory(userConnection); HtmlEmailMessageSender sender = new HtmlEmailMessageSender(emailClientFactory, userConnection); return(sender); }
private static HtmlEmailMessageSender GetEmailSender(UserConnection userConnection) { ConstructorArgument userConnectionArg = new ConstructorArgument("userConnection", userConnection); IEmailClientFactory emailClientFactory = ClassFactory.Get <EmailClientFactory>(userConnectionArg); HtmlEmailMessageSender sender = new HtmlEmailMessageSender(emailClientFactory, userConnection); return(sender); }
private static void SendWithEmailSender(UserConnection userConnection, string contactEmail, string body, string subject) { HtmlEmailMessageSender sender = GetEmailSender(userConnection); var emailMessage = CreateEmailMessage(userConnection, contactEmail, body, subject); sender.Send(emailMessage, true); }
private static void SendWithEmailSender(UserConnection userConnection, string contactEmail, string body, Entity template) { HtmlEmailMessageSender sender = GetEmailSender(userConnection); var emailMessage = CreateEmailMessage(userConnection, contactEmail, body, template.GetTypedColumnValue <string>("Subject")); sender.Send(emailMessage, true); }
/// <summary> /// Send email with recovery password link. /// </summary> /// <param name="userConnection">User connection.</param> /// <param name="recipient">Recipient.</param> /// <param name="subject">Email subject.</param> /// <param name="bodyHtml">Email body.</param> public static void SendRecoveryPasswordLink(UserConnection userConnection, string recipient, string subject, string bodyHtml) { if (userConnection.GetIsFeatureEnabled("UseEmailSenderForSelfReg")) { EmailMessage emailMessage = CreateEmailMessage(userConnection, recipient, bodyHtml, subject); HtmlEmailMessageSender sender = GetEmailSender(userConnection); sender.Send(emailMessage, true); } else { var credentials = CreateMailCredentials(userConnection); var smtpUserName = credentials.UserName; var smtpClient = new Terrasoft.Mail.SmtpClient(userConnection); MailMessage message = smtpClient.CreateMessage(bodyHtml, subject, new[] { recipient }, smtpUserName, true, new Dictionary <Guid, Tuple <byte[], string> >()); smtpClient.SendMessage(message, credentials); } }