2

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);

 ...
4

2 に答える 2

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
...
于 2012-04-18T14:22:22.173 に答える
0

Lumisoft パーサーが添付ファイルを正しくデコードしていないようです。ダウンロード後の添付ファイルのサイズは 0 より大きいですか?

残念ながら、LumiSoft にはかなりバグがあります。商用の代替品を使用することを検討してください。私の製品は次のとおりです: http://www.lesnikowski.com/mail/

于 2011-07-24T08:38:32.207 に答える