Beispiel #1
0
        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);
        }