无法将 Microsoft.Exchange.WebServices.Data.EmailMessage 邮件转换为 S



有没有办法将Exchange EMailMessage转换为System.Net.Mail.MailMessage:

FindItemsResults<Item> result = exchange.FindItems(WellKnownFolderName.Inbox,subjectFilter, new ItemView(10));

我尝试遍历结果,但不知道如何进行转换:

foreach(Item item in result)
{
EmailMessage message = EmailMessage.Bind(exchange, item.Id );
String body = message.Body.Text;
String mailSubject = message.Subject.ToString();
}

不是直接的,它们是不同的类型,所以你不能投射或隐藏它们。您可能需要考虑访问邮件的 MimeContent https://learn.microsoft.com/en-us/exchange/client-developer/exchange-web-services/how-to-export-items-by-using-ews-in-exchange 。然后可以使用 MimeKit http://www.mimekit.net/docs/html/Parsing-Messages.htm#LoadMessage 解析此内容。MimeKit具有与System.Net.Mail.MailMessage相同类型的功能,如果您只是尝试通过SMTP重新发送消息。

您可以像这样逐个传输属性

MailMessage mail = new MailMessage();
mail.From = new MailAddress(exchangeEmail.From.Address);
mail.Subject = exchangeEmail.Subject;
foreach(EmailAddress address in exchangeEmail.ToRecipients)
{
mail.To.Add(address.Address);
} ... 

并将其放入将 EWS 电子邮件作为参数的函数中。