Lumisoft IMAP附件保存了0个字节

时间:2011-07-21 18:16:39

标签: c# imap attachment lumisoft

我正在尝试使用Lumisoft库在.NET c#中通过IMAP协议保存附件。问题是文件已下载并可以保存,但文件大小为0B。

IMAP_Fetch_DataItem_Rfc822()提取附件。变量mail是从流中解析的消息:var mail = Mail_Message.ParseFromStream(stream);

foreach (var att in mail.Attachments)
{
  if (att.ContentType.Type == "image")
  { 
    try
    {
      var fPath = Path.Combine(dirPath, att.ContentType.Param_Name);
      if (!File.Exists(fPath))
      {
        Stream data = ((MIME_b_SinglepartBase)att.Body).GetDataStream();

        using (FileStream fs = File.Create(fPath))
        {
           LumiSoft.Net.Net_Utils.StreamCopy(data, fs, 4096);
        }  
     }
   Console.WriteLine("Storing image attachment into: " + fPath);

 ...

2 个答案:

答案 0 :(得分:1)

您需要关闭Stream data

Stream data = ((MIME_b_SinglepartBase)att.Body).GetDataStream();
using (FileStream fs = File.Create(fPath))
{
       LumiSoft.Net.Net_Utils.StreamCopy(data, fs, 4096);
}
data.Close(); // missing close
...

答案 1 :(得分:0)

似乎Lumisoft解析器没有正确解码附件。 您确定下载后的附件大小是否为零?

LumiSoft不幸的是很漂亮,您可以考虑使用商业替代品, 这是我的产品:http://www.lesnikowski.com/mail/