【发布时间】:2011-12-12 12:25:42
【问题描述】:
我正在开发 imap 电子邮件客户端。
我有一个搜索功能,效果很好。
它返回一个自定义的 EmailHeaderInfo 列表。
此 EmailheaderInfo 类包含以下属性: UID、主题、发件人(System.Net.Mail.MailAdress,它也包含显示名称)、日期(接收)、大小、标记(检查已读/未读状态)和附件(检查电子邮件是否有附件)。我使用正确的字符集将所有内容存储在此类中。
在此搜索功能中,我使用 Imap SEARCH 命令获取 uid,并使用此 uid 我使用以下 FETCH 命令:
UID FETCH " + uids[i] + " (UID RFC822.SIZE FLAGS BODY.PEEK[HEADER.FIELDS (Received From Subject Content-Type)])
每次 Fetch 后,我都会使用正则表达式获取大小和标志,以及使用解析头获取其他信息。
目前列出 250 封电子邮件需要 8 秒。
我真的很好奇其他人对如何使其更快的意见或建议。
更新:
我使用消息集运行 Fetch 命令(我根据 SEARCH 命令结果创建了一个消息集)。
现在列出约 450 封邮件需要 1-2 秒。终于快了。
【问题讨论】: