如何在不获取整个邮件的情况下获取所有电子邮件标头

时间:2017-03-16 18:52:01

标签: c# imap mailkit

有没有办法只获取Mailkit中电子邮件的所有标题?在AE邮件中有一个headeronly标志,可以调用imap BODY.PEEK [HEADER]查询,但在Mailkit中,您似乎只能通过指定所需的标题来获取标题,使用

Fetch (IList<UniqueId> uids, MessageSummaryItems items, HashSet<HeaderId> fields, CancellationToken cancellationToken = default (CancellationToken)).

我尝试使用此获取和HeaderId中的所有枚举,但仍有相当多的标题未被捕获。

我还注意到GetBodyPart有一个headeronly标志,但它需要一个bodypart作为输入。

1 个答案:

答案 0 :(得分:0)

如果您将文件夹转换为ImapFolder,则可以致电:

var entity = ((ImapFolder) folder).GetBodyPart (uid, string.Empty, true);
var headers = entity.Headers;

还有一个采用HashSet&lt; string&gt;的Fetch方法同样,您不仅限于HeaderId中可用的内容