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