Zhivko Kabaivanov Ответов: 0

Проверка электронной почты - невозможно прочитать данные из транспортного соединения


Я использую 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, которые необходимо вызвать для очистки соединения. В противном случае спросите того, кто написал код, поскольку проблема, вероятно, находится в этой библиотеке.

0 Ответов