【问题标题】:filter email with attachment using mimekit/mailkit使用 mimekit/mailkit 过滤带有附件的电子邮件
【发布时间】:2019-05-17 15:04:05
【问题描述】:

有没有办法只过滤带有附件的电子邮件? 我正在使用此代码

using (var client = new ImapClient())
       {
         client.Connect(IMAPServer, IMAPport, IMAPSSL);
         client.AuthenticationMechanisms.Remove("XOAUTH2");
         client.Authenticate(User, Password);
         var inbox = client.Inbox;
         inbox.Open(FolderAccess.ReadOnly);
         //filter email with attachments only
           var results = inbox.Search(SearchQuery.NotSeen.And(SearchQuery.NotDeleted));
  }

【问题讨论】:

标签: c# mailkit mimekit


【解决方案1】:

不幸的是,IMAP 不提供用于检查邮件是否有附件的搜索查询词,但您可以做的是使用您想要的其他条件构建搜索查询(很像您已经完成),然后执行:

var results = inbox.Search(SearchQuery.NotSeen.And(SearchQuery.NotDeleted));
var items = MessageSummaryItems.BodyStructure | MessageSummaryItems.UniqueId;
var matched = new UniqueIdSet ();

foreach (var message in inbox.Fetch (results, items)) {
    if (message.BodyParts.Any (x => x.IsAttachment))
        matched.Add (message.UniqueId);
}

// `matched` now contains a list of UIDs of the messages that have attachments
// and also fit your other search criteria

【讨论】:

    猜你喜欢
    • 2014-08-01
    • 2021-12-02
    • 1970-01-01
    • 2020-11-20
    • 2017-12-15
    • 2018-03-04
    • 2015-01-23
    • 2019-04-26
    • 2017-06-27
    相关资源
    最近更新 更多