我应该如何使用 Chilkat 处理大量邮件?
How should I handle a huge amount of mails with Chilkat?
我正在尝试从 IMAP 服务器获取大量邮件(2500 封或更多)。实际上,我正在使用 imap.FetchHeaders() 函数,但这并不是那么快。然后我尝试了 imap.FetchSingleHeader() 但这比 imap.FetchHeaders() 慢得多......
你会推荐什么??
imap.FetchHeaders() 方法将发送单个 IMAP 命令来获取 headers。 IMAP 服务器将在单个回复中发送所有 headers。完成整个操作所需的大部分时间可能是 IMAP 服务器 "think time" 处理请求并发送响应。如果打开详细日志记录(设置 imap.VerboseLogging 属性 = true)然后检查 imap.LastErrorText 属性 的内容,您应该会看到以经过的毫秒为单位的计时信息。
总而言之,获取 2500 headers 不太可能变得更快。
注意事项:为避免我们在尝试获取大量电子邮件时遇到的问题,Chilkat 将在单个请求中发送最多 1000 headers 个请求。这意味着在 FetchHeaders 方法内部(对于获取 2500 headers 的情况),将出现三个单独的 request/response 对。
谢谢霍华德,
这是为了回答您在上面关于 GetMailboxStatus 的评论中提出的问题。
GetMailboxStatus 方法发送 STATUS 命令请求以下项目:(MESSAGES RECENT UIDNEXT UIDVALIDITY UNSEEN)
鉴于它是 IMAP 协议标准的一部分(在 https://www.rfc-editor.org/rfc/rfc3501#section-6.3.10 ),它应该对所有服务器都有效。 (我不记得曾经回答过 GetMailboxStatus 无法正常工作的支持问题。)
我正在尝试从 IMAP 服务器获取大量邮件(2500 封或更多)。实际上,我正在使用 imap.FetchHeaders() 函数,但这并不是那么快。然后我尝试了 imap.FetchSingleHeader() 但这比 imap.FetchHeaders() 慢得多......
你会推荐什么??
imap.FetchHeaders() 方法将发送单个 IMAP 命令来获取 headers。 IMAP 服务器将在单个回复中发送所有 headers。完成整个操作所需的大部分时间可能是 IMAP 服务器 "think time" 处理请求并发送响应。如果打开详细日志记录(设置 imap.VerboseLogging 属性 = true)然后检查 imap.LastErrorText 属性 的内容,您应该会看到以经过的毫秒为单位的计时信息。
总而言之,获取 2500 headers 不太可能变得更快。
注意事项:为避免我们在尝试获取大量电子邮件时遇到的问题,Chilkat 将在单个请求中发送最多 1000 headers 个请求。这意味着在 FetchHeaders 方法内部(对于获取 2500 headers 的情况),将出现三个单独的 request/response 对。
谢谢霍华德, 这是为了回答您在上面关于 GetMailboxStatus 的评论中提出的问题。
GetMailboxStatus 方法发送 STATUS 命令请求以下项目:(MESSAGES RECENT UIDNEXT UIDVALIDITY UNSEEN)
鉴于它是 IMAP 协议标准的一部分(在 https://www.rfc-editor.org/rfc/rfc3501#section-6.3.10 ),它应该对所有服务器都有效。 (我不记得曾经回答过 GetMailboxStatus 无法正常工作的支持问题。)