C#Imap客户端列表电子邮件headerinfo性能

时间:2011-10-21 11:23:36

标签: c# imap

我正在开发一个imap电子邮件客户端 我有一个搜索功能,它完美无缺 它返回一个自定义的EmailHeaderInfo列表。

此EmailheaderInfo类包含下一个属性: UID,主题,来自(System.Net.Mail.MailAdress,它还包含显示名称),日期(接收),大小标记(检查已读/未读状态)和附件(检查电子邮件是否有附件)。我使用正确的字符集将所有内容存储在此类中。

在这个搜索功能中,我使用Imap SEARCH 命令获取uids,并使用此uid 我使用以下 FETCH 命令:

UID FETCH“+ uids [i] +”(UID RFC822.SIZE FLAGS BODY.PEEK [HEADER.FIELDS(从主题内容类型收到)])

每次获取后,我获得大小并使用regexp标记,并使用解析标题获取其他信息。

目前列出250封电子邮件需要8秒。

我真的很好奇其他人对如何加快速度的意见或建议。

更新

我使用messagetset运行Fetch命令(我从SEARCH命令结果中创建了一个消息集)。

现在列出约450封邮件需要1-2秒。最后它真的很快。

1 个答案:

答案 0 :(得分:1)

首先,您需要检查消息信息返回时间。服务器在不解析的情况下返回所有信息的速度 然后你可以看到你花了多少时间......

非主题说明: Subject,From contains字符串,根据IMAP,任何字符串都可以表示为字符串文字。 所以你需要准备好接收它们。 这意味着命令可以扩展到多行,您需要读取更多行才能获得完整的数据... RFC 3501字符串文字将描述它。