【问题标题】:Unable to Convert Microsoft.Exchange.WebServices.Data.EmailMessage mail message to System.Net.Mail.MailMessage无法将 Microsoft.Exchange.WebServices.Data.EmailMessage 邮件消息转换为 System.Net.Mail.MailMessage
【发布时间】:2020-01-14 13:55:58
【问题描述】:

有没有办法将 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();
}

【问题讨论】:

  • 在考虑回答之前,我们希望看到您的尝试。请花点时间阅读“How to Ask”以增加您的机会。
  • 感谢@GuillaumeRAYMOND 的编辑。我已经改写了我的问题,如果您能提供一些建议,那将非常有帮助。

标签: exchangewebservices system.net.mail


【解决方案1】:

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

【讨论】:

  • 必须注意,MIME 内容可能不会保留所有 MAPI 特定属性。
【解决方案2】:

你可以像这样一个一个地传递属性

        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 电子邮件作为参数的函数中。

【讨论】:

    猜你喜欢
    • 2014-11-09
    • 2017-09-23
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 2014-05-23
    • 2013-07-12
    • 2014-09-07
    相关资源
    最近更新 更多