【发布时间】:2017-09-13 13:19:09
【问题描述】:
我有一个应用程序,它通过使用 Gmail 收件箱和 S22.Imap 来阅读电子邮件和 pdf 附件来处理来自供应商的发票。它已经使用了好几年了,没有任何问题,但是最近,当我尝试使用以下命令从收件箱中获取所有要处理的消息时,我一直看到“无法读取流”错误:
IEnumerable<uint> uids = client.Search(SearchCondition.Unseen());
IEnumerable<MailMessage> messages = client.GetMessages(uids);
此异常似乎仅在某个供应商一次发送大量电子邮件时发生。我一直在查看S22.Imap documentation,但没有找到任何帮助。
注意:我确实看到了这种获取电子邮件的方式,但我上面使用的原始方法是文档中“下载看不见的邮件消息”的实际示例:
// Fetch the messages and process each one
foreach (uint uid in uids)
{
MailMessage message = client.GetMessage(uid);
ProcessMessage(message);
}
我的问题是我无法在本地重现异常,而且我不太了解它与 client.GetMessages(uids) 命令的关系。
以这种方式处理的邮件数量是否有上限,或者是否有更好的方式来阅读和处理电子邮件?
如果 client.GetMessages(uids) 是获取这些电子邮件的最佳方式,是否有一种好方法可以捕获此异常并在它发生时继续?
如果有任何建议,我将不胜感激。谢谢,
【问题讨论】:
标签: c# email gmail imap gmail-imap