Gmail IMAP - 附件未出现

问题描述:

我一直在研究IMAP客户端以从Gmail获取电子邮件。我的应用程序运行良好,直到大约一个小时前,当附件停止检索。Gmail IMAP - 附件未出现

连接和消息正在被imapX处理。

连接正常 登录是好的 获得文件夹是好的 获取消息是好的

此时attachments.Count == 0,这是今天下午早些时候工作,所以我不知道我是否已经过测试Google已将我的电脑列入黑名单一段时间?有谁知道这是否是这种情况? - 每5-10分钟跑一次,或许更多次,所以这可能是一个合理的问题。

我试图发送一个新的电子邮件,其中包含一个完全新的文件,它仍然没有看到该附件(但它是(总)看到消息本身)。

任何人都可以照亮这个问题吗?

编辑:标题包括以下标记{[X-MS-HAS-附加,是]}

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

代码将需要帮助你。 – 2012-02-14 18:07:56

+0

好的,明天会发布 - 现在不工作。由于没有工作和不工作的代码之间没有区别(90%肯定!!! - 不需要告诉我拼写错误等等等等),我想这个问题一定是与上的Gmail IMAP活动的限制。纯粹推测性的 – 2012-02-14 18:21:08

+0

;但它也可能是一个过分热心的防火墙。 – SimonMayer 2012-02-14 18:59:20

我已经产生一个变通,让我获取附件数据。不是我想到的解决方案,尽管它确实有效。

简单的文件扩展名检查,然后转换邮件数据。

BTW:_encoding = Encoding.GetEncoding(1252);

  if (bodyPart.ContentFilename.EndsWith(".csv")) 
      { 
       return _encoding.GetString(Convert.FromBase64String(bodyPart.ContentStream)); 
      }