Проверка электронной почты - невозможно прочитать данные из транспортного соединения
Я использую MailSystem[^] библиотека для проверки учетной записи Gmail каждые 10 минут.
В моем приложении я подключаю/регистрирую две разные учетные записи Gmail при запуске.
Всякий раз, когда я переключаю методы проверки электронной почты, я получаю исключение:
Exception: Unable to read data from the transport connection: An established connection was aborted by the software in your host machine. StackTrace: System.IO.IOException: Unable to read data from the transport connection: An established connection was aborted by the software in your host machine. ---> System.Net.Sockets.SocketException: An established connection was aborted by the software in your host machine at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
Что я уже пробовал:
Я попробовал несколько вещей:
Добавлена папка и файл в исключения антивирусной системы.
Разрешено приложение в брандмауэре.
Я попытался сначала подключить одно письмо, а затем подключить второе письмо. После первой проверки почтового ящика я получаю исключение.
Я подключаюсь к электронной почте, используя приведенный ниже код, в качестве примечания я могу добавить, что для подключения электронной почты я использую задачу.метод Run:
private Imap4Client Client => client ?? (client = new Imap4Client()); public Email(string username, string password) { try { Client.ConnectSsl(GMAIL_IMAP, SSL_PORT); Client.Login(username, password); } catch (Exception ex) { LogSystem.Instance.AddToLog("Exception during logging to email"); LogSystem.Instance.AddToLog(ex); } }
В случае Тика объекта timer я проверяю почтовый ящик каждые 10 минут, как это рекомендуется в google notes.
Использование этого кода:
private MessageCollection GetMails(string mailBox, string searchPhrase) { var mailbox = Client.SelectMailbox(mailBox); MessageCollection messages = mailbox.SearchParse(searchPhrase); return messages; }
F-ES Sitecore
Проверьте документацию, чтобы узнать, есть ли какие-либо методы Dispose или disconnect, которые необходимо вызвать для очистки соединения. В противном случае спросите того, кто написал код, поскольку проблема, вероятно, находится в этой библиотеке.