如何在MailKit中获取几封邮件的所有标头

时间:2018-07-30 05:31:00

标签: c# mailkit

在MailKit中,

您可以使用以下内容获取多个消息的IMessageSummary(包含指定的标题和完整的消息)

ImapFolder folder;
List<UniqueId> uids;
var messageSummaries = folder.Fetch(uids, 
                                    MessageSummaryItems.Full, 
                                    new HashSet<string>{"X-Mailer"});

如果通行证为空HashSet<string>,我得到System.ArgumentException: The set of header fields cannot be empty

如何获取所有可用的标头

注意:我知道我可以逐个获取每封邮件的标头,但这太慢了,无法满足我的性能需求。

1 个答案:

答案 0 :(得分:2)

入侵MailKit

由于MailKit是开源的,所以我刚刚修改了ImapFolderFetch的代码以处理所有标头的提取,并发出了请求请求。库的所有者通过在MessageSummaryItems中添加新值来对其进行了改进。

用法:

var messageSummaries = folder.Fetch(uids, MessageSummaryItems.Headers);

注意:在完成新发行之前,您将必须从github master构建自己的版本。