无法从 MimeMessage 解析 tnef 部分

Unable to parse tnef part from MimeMessage

我有一个 MimeMessage,其中包含 winmail.dat 类型 application/ms-tnef 的附件。

我认为这是一封 RTF 格式的电子邮件,是从 Outlook 客户端发送的。我尝试用 tnefpart 解析它,但我 运行 遇到以下错误。

这是我的函数:

ProcessMimeMessage(MimeMessage plainMime)
{
 foreach (var attachment in plainMime.Attachments)
 {
  if (attachment.GetType() == typeof(MimeKit.Tnef.TnefPart))
  {
   ReportStatus("Processing Tnef Part (RTF Message): ");
   MimeKit.Tnef.TnefPart tnefPart = (MimeKit.Tnef.TnefPart)attachment;

   try { 
    MimeMessage mimeMessage = tnetPart.ConvertToMessage();
   } catch (Exception ex) {printexception(ex);}
  }
 }
}

这是 ConvertToMessage 抛出的异常

Invalid addr-spec token at offset 0
at MimeKit.InternetAddress.TryParseAddrspec(Byte[] text, Int32& index, Int32 endIndex, Byte[] sentinels, Boolean throwOnError, String& addrspec, Int32& at)
at MimeKit.MailboxAddress.set_Address(String value)
at MimeKit.Tnef.TnefPart.EmailAddress.TryGetMailboxAddress(MailboxAddress& mailbox)
at MimeKit.Tnef.TnefPart.ExtractMapiProperties(TnefReader reader, MimeMessage message, BodyBuilder builder)
at MimeKit.Tnef.TnefPart.ExtractTnefMessage(TnefReader reader)
at MimeKit.Tnef.TnefPart.ConvertToMessage()

谢谢

这仅表示 TNEF 字段之一中的 "email address" 不是有效的电子邮件地址(语法上)。

可能只是地址类型字段不是 "SMTP" 并且 MimeKit 试图将其解析为 rfc822 地址字段。

我在以下提交中改进了稳健性:https://github.com/jstedfast/MimeKit/commit/15f955b49dc7743d1281afbedce6d327706e161b

您可以使用 README.md 文件中列出的 MyGet 包来修复此问题。