示例#1
0
        public void Send(MailerModel mailer)
        {
            if (mailer == null)
            {
                throw new Exception("No valid mailer model found");
            }

            if (mailer.IsValid())
            {
                var messageBody = "";
                if (mailer.HasLayout)
                {
                    messageBody = mailer.Layout.GetLayout();
                }

                if (mailer.IsHtml)
                {
                    if (mailer.HasViewName)
                    {
                        var emailContent = mailer.Model.GetHtmlEmailContent(mailer.ViewFile);
                        messageBody = Regex.Replace(messageBody, @"(?<![\w]){EMAILCONTENT}(?![\w])", emailContent ?? "");
                    }
                    else
                    {
                        var emailContent = mailer.Model.GetTextEmailContent(mailer.Message);
                        messageBody = string.IsNullOrWhiteSpace(messageBody) == false?Regex.Replace(messageBody, @"(?<![\w]){EMAILCONTENT}(?![\w])", emailContent ?? "") : emailContent;
                    }
                }
                else
                {
                    var emailContent = mailer.Model.GetTextEmailContent(mailer.Message);
                    messageBody = string.IsNullOrWhiteSpace(messageBody) == false?Regex.Replace(messageBody, @"(?<![\w]){EMAILCONTENT}(?![\w])", emailContent ?? "") : emailContent;
                }
                var emailMessage =
                    new MailMessage()
                {
                    From       = new MailAddress(mailer.FromAddress),
                    IsBodyHtml = mailer.IsHtml,
                    Subject    = mailer.Subject,
                    Body       = messageBody
                };

                foreach (var toAddress in mailer.ToAddresses)
                {
                    emailMessage.To.Add(toAddress);
                }

                foreach (var replyTo in mailer.ReplyTo)
                {
                    emailMessage.ReplyToList.Add(replyTo);
                }

                foreach (var attachment in mailer.Attachments)
                {
                    emailMessage.Attachments.Add(attachment);
                }

                foreach (var ccAddress in mailer.CC)
                {
                    emailMessage.CC.Add(ccAddress);
                }

                foreach (var bccAddress in mailer.BCC)
                {
                    emailMessage.Bcc.Add(bccAddress);
                }

                if (mailer.UsePickupDirectory)
                {
                    _client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
                    if (!Directory.Exists(mailer.PickupPath))
                    {
                        Directory.CreateDirectory(mailer.PickupPath);
                    }
                    _client.PickupDirectoryLocation = mailer.PickupPath;
                }
                else
                {
                    _client.Host        = mailer.Host;
                    _client.Port        = mailer.Port;
                    _client.Credentials = new NetworkCredential(mailer.User, mailer.Key);
                }
                _client.Send(emailMessage);
            }
        }
示例#2
0
        public void Send(MailerModel mailer)
        {
            if (mailer == null)
            {
                throw new Exception("No valid mailer model found");
            }

            if (mailer.IsValid())
            {
                string messageBody;
                if (_renderer != null)
                {
                    messageBody = mailer.HasViewName
                        ? _renderer.RenderView(mailer.ViewFile, mailer.Model)
                        : mailer.Message;
                }
                else
                {
                    messageBody = mailer.Message;
                }


                var emailMessage =
                    new MailMessage()
                {
                    From       = new MailAddress(mailer.FromAddress),
                    IsBodyHtml = mailer.IsHtml,
                    Subject    = mailer.Subject,
                    Body       = messageBody
                };

                foreach (var toAddress in mailer.ToAddresses)
                {
                    emailMessage.To.Add(toAddress);
                }

                foreach (var replyTo in mailer.ReplyTo)
                {
                    emailMessage.ReplyToList.Add(replyTo);
                }

                foreach (var attachment in mailer.Attachments)
                {
                    emailMessage.Attachments.Add(attachment);
                }

                foreach (var ccAddress in mailer.CC)
                {
                    emailMessage.CC.Add(ccAddress);
                }

                foreach (var bccAddress in mailer.BCC)
                {
                    emailMessage.Bcc.Add(bccAddress);
                }

                if (mailer.UsePickupDirectory)
                {
                    _client.DeliveryMethod = SmtpDeliveryMethod.SpecifiedPickupDirectory;
                    if (!Directory.Exists(mailer.PickupPath))
                    {
                        Directory.CreateDirectory(mailer.PickupPath);
                    }
                    _client.PickupDirectoryLocation = mailer.PickupPath;
                }
                else
                {
                    _client.Host        = mailer.Host;
                    _client.Port        = mailer.Port;
                    _client.Credentials = new NetworkCredential(mailer.User, mailer.Key);
                }



                _client.Send(emailMessage);
            }
        }