예제 #1
0
        /// <summary>
        /// Sends member emails by type.
        /// </summary>
        /// <param name="emailType">Type of the email.</param>
        /// <param name="member">The member.</param>
        public void SendUserEmail(MemberEmailType emailType, Member member)
        {
            var configuration = _mailConfiguration.GetConfiguration();

            if (configuration.MailingEnabled)
            {
                try
                {
                    var templateConfiguration = configuration.Templates.First(t => t.Type == emailType.ToString());
                    var html    = Razor.Run(emailType.ToString(), member);
                    var subject = templateConfiguration.Subject;
                    var from    = configuration.DefaultMailingAddress;
                    var to      = member.EmailAddress;

                    var message = new MailMessage(from, to, subject, html)
                    {
                        IsBodyHtml = true
                    };
                    message = ReplaceMemberValueTokens(message, member);

                    SendMail(message);
                }
                catch (Exception ex)
                {
                    _log.Error(ex.Message, ex);
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Sends member emails by type.
        /// </summary>
        /// <param name="emailType">Type of the email.</param>
        /// <param name="userId">The user id.</param>
        public void SendUserEmail(MemberEmailType emailType, int userId)
        {
            var configuration = _mailConfiguration.GetConfiguration();

            if (configuration.MailingEnabled)
            {
                var mailType     = int.Parse(emailType.ToString("d"));
                var mailTemplate = _emailTemplateRepository.Get(e => e.EmailTemplateId == mailType).FirstOrDefault();
                if (mailTemplate == null)
                {
                    return;
                }

                var user    = _memberRepository.Get(m => m.MemberId == userId).FirstOrDefault();
                var subject = mailTemplate.EmailSubject;
                var body    = mailTemplate.EmailBody;
                var from    = configuration.DefaultMailingAddress;
                var to      = user.EmailAddress;

                var valuesPropertyBag = new MemberEmailPropertyBag(userId);

                body    = valuesPropertyBag.Keys.Aggregate(body, (current, token) => current.Replace(string.Format("{0}", token), valuesPropertyBag[token]).Replace("{~", "").Replace("}", ""));
                subject = valuesPropertyBag.Keys.Aggregate(subject, (current, token) => current.Replace(string.Format("{0}", token), valuesPropertyBag[token]).Replace("{~", "").Replace("}", ""));

                var message = new MailMessage(from, to, subject, body)
                {
                    IsBodyHtml = true
                };
                var mailClient = new SmtpClient(configuration.Host, configuration.Port.Value);

                try
                {
                    mailClient.Send(message);
                }
                catch (Exception ex)
                {
                }
            }
        }
예제 #3
0
 /// <summary>
 /// Sends member emails by type.
 /// </summary>
 /// <param name="emailType">Type of the email.</param>
 /// <param name="user">The user.</param>
 public void SendUserEmail(MemberEmailType emailType, Member user)
 {
     _mailProcessor.SendUserEmail(emailType, user);
 }