GetMessage() 耗时过长 MailKit
GetMessage() take excessive long time MailKit
当我打电话给
var result = MailKit.GetMessage(uid)
然后呼叫 return 大约需要 4 秒。有什么 better/faster 方法可以从服务器获取 MIME 消息吗?
目前正在做以下事情:
1. 获取(0, -1, MessageSummaryItems.UniqueId | MessageSummaryItems.Envelope | MessageSummaryItems.Flags)
2. 循环获取结果以找到匹配的messageId
3. 使用之前找到的 UID 发送 GetMessage()。
我可以看到 FETCH 在大多数情况下大约需要 2 秒,我所有的过程将花费大约 6 秒,这有点 "long" 在我可以在客户端中显示电子邮件之前。
有没有更快的方法使用 MailKit 从邮件服务器获取 MIME 消息,而我对电子邮件的了解只有 MessageID
??
您可以缓存所有消息摘要,这样您就不必每次都向服务器询问...
您也可以试试:
var uids = folder.Search (SearchQuery.HeaderContains ("Message-Id", messageId));
if (uids.Count > 0)
message = folder.GetMessage (uids[0]);
当我打电话给
var result = MailKit.GetMessage(uid)
然后呼叫 return 大约需要 4 秒。有什么 better/faster 方法可以从服务器获取 MIME 消息吗?
目前正在做以下事情:
1. 获取(0, -1, MessageSummaryItems.UniqueId | MessageSummaryItems.Envelope | MessageSummaryItems.Flags)
2. 循环获取结果以找到匹配的messageId
3. 使用之前找到的 UID 发送 GetMessage()。
我可以看到 FETCH 在大多数情况下大约需要 2 秒,我所有的过程将花费大约 6 秒,这有点 "long" 在我可以在客户端中显示电子邮件之前。
有没有更快的方法使用 MailKit 从邮件服务器获取 MIME 消息,而我对电子邮件的了解只有 MessageID
??
您可以缓存所有消息摘要,这样您就不必每次都向服务器询问...
您也可以试试:
var uids = folder.Search (SearchQuery.HeaderContains ("Message-Id", messageId));
if (uids.Count > 0)
message = folder.GetMessage (uids[0]);