/// <summary> /// Converts MailBee mail message to .NET FX mail message. /// </summary> /// <param name="mailBeeMailMessage">MailBee mail message.</param> /// <returns>.NET FX mail message.</returns> private static System.Net.Mail.MailMessage ConvertToNetMailMessage(MailMessage mailBeeMailMessage) { var mailMessage = new System.Net.Mail.MailMessage { Sender = new MailAddress(mailBeeMailMessage.From.AsString), Subject = mailBeeMailMessage.Subject, Body = mailBeeMailMessage.IsBodyAvail("text/html", false) ? mailBeeMailMessage.BodyHtmlText : mailBeeMailMessage.BodyPlainText, IsBodyHtml = mailBeeMailMessage.IsBodyAvail("text/html", false), From = new MailAddress(mailBeeMailMessage.From.AsString), }; foreach (EmailAddress emailAddress in mailBeeMailMessage.To) { mailMessage.To.Add(new MailAddress(emailAddress.AsString)); } foreach (EmailAddress emailAddress in mailBeeMailMessage.Cc) { mailMessage.CC.Add(new MailAddress(emailAddress.AsString)); } foreach (EmailAddress emailAddress in mailBeeMailMessage.Bcc) { mailMessage.Bcc.Add(new MailAddress(emailAddress.AsString)); } switch (mailBeeMailMessage.Priority) { case MailPriority.Low: case MailPriority.Lowest: mailMessage.Priority = System.Net.Mail.MailPriority.Low; break; case MailPriority.None: case MailPriority.Normal: mailMessage.Priority = System.Net.Mail.MailPriority.Normal; break; case MailPriority.High: case MailPriority.Highest: mailMessage.Priority = System.Net.Mail.MailPriority.High; break; } foreach (Attachment mailBeeAttachment in mailBeeMailMessage.Attachments) { if ((!mailBeeAttachment.IsFile && !mailBeeAttachment.IsInline) && !mailBeeAttachment.IsMessageInside) { continue; } var attachmentName = GetAttachmentName(mailBeeAttachment); var newAttachment = new System.Net.Mail.Attachment( new MemoryStream(mailBeeAttachment.GetData()), attachmentName, mailBeeAttachment.ContentType); if (mailBeeAttachment.IsInline && !String.IsNullOrEmpty(mailBeeAttachment.ContentID)) { newAttachment.Name = mailBeeAttachment.ContentID; } mailMessage.Attachments.Add(newAttachment); } return(mailMessage); }
/// <summary> /// Converts MailBee mail message to .NET FX mail message. /// </summary> /// <param name="mailBeeMailMessage">MailBee mail message.</param> /// <returns>.NET FX mail message.</returns> private System.Net.Mail.MailMessage ConvertToNetMailMessage(MailMessage mailBeeMailMessage) { var mailMessage = new System.Net.Mail.MailMessage { Sender = new MailAddress(mailBeeMailMessage.From.AsString), Subject = mailBeeMailMessage.Subject, Body = mailBeeMailMessage.IsBodyAvail("text/html", false) ? mailBeeMailMessage.BodyHtmlText : mailBeeMailMessage.BodyPlainText, IsBodyHtml = mailBeeMailMessage.IsBodyAvail("text/html", false), From = new MailAddress(mailBeeMailMessage.From.AsString), }; foreach (var emailAddress in mailBeeMailMessage.To.Cast <EmailAddress>().Where(emailAddress => !mailMessage.To.TryAdd(emailAddress.AsString))) { _log.WarnFormat("To address \"{0}\" is not in a recognized format.", emailAddress.AsString); } foreach (var emailAddress in mailBeeMailMessage.Cc.Cast <EmailAddress>().Where(emailAddress => !mailMessage.CC.TryAdd(emailAddress.AsString))) { _log.WarnFormat("Cc address \"{0}\" is not in a recognized format.", emailAddress.AsString); } foreach (var emailAddress in mailBeeMailMessage.Bcc.Cast <EmailAddress>().Where(emailAddress => !mailMessage.Bcc.TryAdd(emailAddress.AsString))) { _log.WarnFormat("Bcc address \"{0}\" is not in a recognized format.", emailAddress.AsString); } switch (mailBeeMailMessage.Priority) { case MailPriority.Low: case MailPriority.Lowest: mailMessage.Priority = System.Net.Mail.MailPriority.Low; break; case MailPriority.None: case MailPriority.Normal: mailMessage.Priority = System.Net.Mail.MailPriority.Normal; break; case MailPriority.High: case MailPriority.Highest: mailMessage.Priority = System.Net.Mail.MailPriority.High; break; } foreach (Attachment mailBeeAttachment in mailBeeMailMessage.Attachments) { if ((!mailBeeAttachment.IsFile && !mailBeeAttachment.IsInline) && !mailBeeAttachment.IsMessageInside) { continue; } var attachmentName = GetAttachmentName(mailBeeAttachment); var newAttachment = new System.Net.Mail.Attachment( new MemoryStream(mailBeeAttachment.GetData()), attachmentName, mailBeeAttachment.ContentType); if (mailBeeAttachment.IsInline && !String.IsNullOrEmpty(mailBeeAttachment.ContentID)) { newAttachment.Name = mailBeeAttachment.ContentID; } mailMessage.Attachments.Add(newAttachment); } return(mailMessage); }