我有一个应用程序,通过使用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)是获取这些电子邮件的最佳方式,是否有一种很好的方法可以捕获此异常并在它发生时继续?
我很感激任何建议。谢谢,
答案 0 :(得分:0)