protected virtual MailMessage CreateMailMessage(EmailMessageEntity email) { MailMessage message = new MailMessage() { From = email.From.ToMailAddress(), Subject = email.Subject, IsBodyHtml = email.IsBodyHtml, }; AlternateView view = AlternateView.CreateAlternateViewFromString(email.Body, null, email.IsBodyHtml ? "text/html" : "text/plain"); view.LinkedResources.AddRange(email.Attachments .Where(a => a.Type == EmailAttachmentType.LinkedResource) .Select(a => new LinkedResource(a.File.OpenRead(), MimeMapping.GetMimeMapping(a.File.FileName)) { ContentId = a.ContentId, })); message.Attachments.AddRange(email.Attachments .Where(a => a.Type == EmailAttachmentType.Attachment) .Select(a => new Attachment(a.File.OpenRead(), MimeMapping.GetMimeMapping(a.File.FileName)) { ContentId = a.ContentId, Name = a.File.FileName, })); message.AlternateViews.Add(view); message.To.AddRange(email.Recipients.Where(r => r.Kind == EmailRecipientKind.To).Select(r => r.ToMailAddress()).ToList()); message.CC.AddRange(email.Recipients.Where(r => r.Kind == EmailRecipientKind.Cc).Select(r => r.ToMailAddress()).ToList()); message.Bcc.AddRange(email.Recipients.Where(r => r.Kind == EmailRecipientKind.Bcc).Select(r => r.ToMailAddress()).ToList()); return(message); }