2016-03-04 22 views
1

如何在使用MimeKit时获取附件内容?这是我有:使用C#中的MimeKit获取字节数组中的附件

var mimeMessage = MimeMessage.Load(@"test.eml"); 
var attachments = mimeMessage.Attachments.ToList(); 

foreach (var attachment in attachments) 
{ 
    // how do I get the content here (array of bytes or stream) 
} 

回答

7

这应该做你需要的东西:

var mimeMessage = MimeMessage.Load(@"test.eml"); 
var attachments = mimeMessage.Attachments.ToList(); 

foreach (var attachment in attachments) 
{ 
    using (var memory = new MemoryStream()) 
    { 
     if (attachment is MimePart) 
      ((MimePart) attachment).Content.DecodeTo (memory); 
     else 
      ((MessagePart) attachment).Message.WriteTo (memory); 

     var bytes = memory.ToArray(); 
    } 
} 
+0

如果内容类型是“消息/ RFC822”(附件是电子邮件)?这似乎不适用于这种类型的附件。 –

+0

已更新我的回答,以显示如何保存这些内容。 – jstedfast

+0

只有一个问题,这两个选项是否会覆盖任何类型的附件? –

相关问题