Exemplo n.º 1
0
        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);
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
 /// <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);
     }
 }