2016-03-04 118 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

只有一個問題,這兩個選項是否會覆蓋任何類型的附件? –

相關問題