无法从 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 包来修复此问题。
我有一个 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 包来修复此问题。