Ich habe eine Anwendung, die Rechnungen von Anbietern mit einem Gmail-Posteingang und S22.Imap verarbeitet, um E-Mails und PDF-Anhänge zu lesen . Es ist seit mehreren Jahren ohne Problem verwendet, aber in letzter Zeit, ich habe gesehen worden „Der Strom kann nicht gelesen werden“ Fehler, wenn alle Nachrichten aus dem Posteingang zu erhalten versuchen, den Befehl zu verarbeiten mit:S22.Imap System.IO.IOException: Der Stream konnte nicht gelesen werden, während client.GetMessages (Uids)
IEnumerable<uint> uids = client.Search(SearchCondition.Unseen());
IEnumerable<MailMessage> messages = client.GetMessages(uids);
Diese Ausnahme tritt nur dann auf, wenn ein bestimmter Anbieter eine große Anzahl von E-Mails gleichzeitig sendet. Ich habe durch die S22.Imap documentation gesucht, aber nichts von Hilfe gefunden.
Hinweis: ich auf diese Weise sehen, hat E-Mails zu bekommen, aber die ursprüngliche Methode, die ich oben verwendet wird, ist das eigentliche Beispiel für „Herunterladen von unsichtbaren Mail-Nachrichten“ in der Dokumentation:
// Fetch the messages and process each one
foreach (uint uid in uids)
{
MailMessage message = client.GetMessage(uid);
ProcessMessage(message);
}
hier Mein Problem ist, dass ich Ich konnte die Ausnahme nicht lokal reproduzieren, und ich verstehe nicht wirklich, wie sie sich auf den Befehl client.GetMessages (uids) bezieht.
Gibt es eine maximale Anzahl von Nachrichten, die auf diese Weise verarbeitet werden können, oder gibt es eine bessere Möglichkeit, E-Mails zu lesen und zu verarbeiten?
Wenn client.GetMessages (Uids) der beste Weg ist, um diese E-Mails zu bekommen, gibt es eine gute Möglichkeit, dass ich diese Ausnahme fangen und weitermachen könnte, wenn es passiert?
Ich würde mich über jeden Hinweis freuen. Danke,