2012-02-14 21 views
0

Gmailからメールを受け取るためにIMAPクライアントで作業しています。私のアプリケーションは、約1時間前、つまり添付ファイルの取得を停止するまでうまくいきました。Gmail IMAP - 添付ファイルが表示されない

接続とメッセージはimapXによって処理されています。

接続は大丈夫です ログインが 取得フォルダOKAYあるOKAY メッセージの取得であることは、以前の午後に働いていたこの時点attachments.Countの== 0でOKAY

である私がテストの上にされている場合ので、私は疑問に思いますGoogleは私のコンピュータをしばらくブラックリストに載せていますか?この場合、誰もが知っていますか? - たぶん5~10分ごとに1回実行していた可能性があります。

まったく新しいファイルで新しいメールを送信しようとしましたが、添付ファイルは表示されません(ただし、メッセージは常に表示されます)。

誰でもこの問題を晴らすことができますか?

EDIT:私は私を可能にする回避を生成した

private void PollMailFolders(object state) 
    { 
     try 
     { 

      if(_imapClient == null || !_imapClient.IsConnected) 
       _imapClient = new ImapClient(_config.Server, _config.Port, true); 

      if (_imapClient.Connection()) 
      { 
       if(!_imapClient.IsLogined) 
        _imapClient.LogIn(_config.Username, _config.Password); 

       string dateSearch = string.Format(
        "SINCE {0:d-MMM-yyyy}{1}", DateTime.Today.AddDays(-_config.HistoryOnStartupDays), 
                _isFirstTime ? "" : " UNSEEN"); 

       _isFirstTime = false; 

       foreach (Folder folder in _imapClient.Folders["SSForecasts"].SubFolder) 
       { 
        var messages = _imapClient.Folders[folder.Name].Search(dateSearch, false); 

        foreach (Message m in messages) 
        { 
         m.Process(); 

         foreach (var a in m.Attachments) 
         { 
          SendDataToParser(_encoding.GetString(a.FileData), folder.Name); 
         } 
         m.SetFlag(ImapFlags.SEEN); 
        } 
       } 
      } 
     } 
     catch(Exception e) 
     { 
      _diagnostics.Logger.ErrorFormat("Error in PollMailFolders: {0}", e); 
     } 
    } 
+0

コードが必要です。 –

+0

さて、明日は投稿します - 今は仕事ではありません。作業中のコードと作業中のコードとの間に違いはないので(90%の確信!!! - スペルミスなどについて私に教えてもらう必要はありません)、問題はGmail Imapアクティビティの制限に関係しているはずです。 –

+0

純粋に投機的;あまりにも熱心なファイアウォールでもあります。 – SimonMayer

答えて

0

:ヘッダは、次のタグ{[X-MS-HAS-取り付け、はい]}

EDIT(コード)を含みます添付ファイルのデータを取得します。私は念頭に置いた解決策ではありませんが、それは機能します。

単純なファイル名の拡張子のチェックに続いて、メッセージデータの変換が続きます。

BTW:_encoding = Encoding.GetEncoding(1252);

  if (bodyPart.ContentFilename.EndsWith(".csv")) 
      { 
       return _encoding.GetString(Convert.FromBase64String(bodyPart.ContentStream)); 
      } 
関連する問題