При работе с почтовыми ящиками в среде 1С:Предприятие 8.3 разработчики и системные администраторы часто сталкиваются с техническими трудностями. Одной из наиболее неприятных и труднодиагностируемых проблем является внезапный сбой при попытке установить защищенное соединение по протоколам POP3 или IMAP. В системных логах и окне ошибок 1С это проявляется следующим образом: «Ошибка при вызове метода контекста (Подключиться): TLS/SSL failure for адрес: Unexpected TCP input disconnect».
Давайте подробно проанализируем, почему возникает эта ошибка, как работает сетевое взаимодействие в этот момент и как пошагово устранить данную проблему на стороне почтового сервера и самой платформы 1С.
С технической точки зрения данная ошибка указывает на то, что в процессе установки защищенного канала (SSL/TLS Handshake) почтовый сервер принудительно разорвал сетевое TCP-соединение (выполнил сброс сессии или прислал пакет RST). Это происходит еще до того, как платформа 1С успевает передать учетные данные (логин и пароль) для авторизации.
Выделим четыре основные причины, по которым почтовый сервер может вести себя подобным образом:
ИнтернетПочтовыйПрофиль в программном коде 1С (несоответствие портов и флагов SSL).Рассмотрим подробнее каждый сценарий и разберем по шагам методы их решения.
---
Если в качестве почтового сервера в вашей организации используется Microsoft Exchange Server (версий 2013, 2016 или 2019), то наиболее вероятной причиной сбоя после установки очередных накопительных обновлений (Cumulative Updates) является изменение состояния внутренних компонентов сервера.
Даже если в диспетчере служб Windows (services.msc) службы Microsoft Exchange POP3 и Microsoft Exchange POP3 Backend запущены и работают, сам сервер может отклонять входящие подключения. Это происходит из-за того, что внутренний компонент Exchange под названием PopProxy переходит в состояние Inactive. Посмотрим, как это исправить с помощью консоли управления.
Выполним следующие шаги для диагностики и восстановления работы Exchange:
Get-ServerComponentState -Identity <Имя_Вашего_Сервера>
В полученном списке найдите строку с компонентом PopProxy (а также ImapProxy, если используется протокол IMAP). Обратите внимание на колонку State. Если там указано Inactive, это и есть причина сброса TCP-соединений.
(Get-ServerComponentState -Identity <Имя_Вашего_Сервера> -Component PopProxy).LocalStates
HealthAPI, либо это происходит во время обслуживания системы (Maintenance).
PopProxy обратно в активное состояние (Active). Для этого запустим команду командлета, указав соответствующего инициатора (в большинстве случаев это HealthAPI):
Set-ServerComponentState -Identity <Имя_Вашего_Сервера> -Component PopProxy -State Active -Requester HealthAPI
Functional или Maintenance), обязательно укажите его имя в параметре -Requester.
ImapProxy, если ваши пользователи работают по протоколу IMAP:
Set-ServerComponentState -Identity <Имя_Вашего_Сервера> -Component ImapProxy -State Active -Requester HealthAPI
Restart-Service MSExchangePOP3
Restart-Service MSExchangePOP3BE
После активации компонентов почтовый сервер Exchange мгновенно начнет принимать защищенные SSL/TLS подключения от платформы 1С, и ошибка TCP-соединения исчезнет.
---
Современные требования к информационной безопасности обязывают ИТ-специалистов отключать поддержку уязвимых протоколов шифрования TLS 1.0 и TLS 1.1 на стороне почтовых серверов (включая публичные сервисы Яндекс.Почта, Mail.ru, Gmail). Серверы требуют обязательного использования защищенного протокола TLS 1.2 или TLS 1.3.
Если сервер 1С:Предприятия функционирует на базе устаревшей операционной системы (например, Windows Server 2008 R2 или Windows Server 2012 без установленных критических обновлений безопасности), или используется устаревший релиз платформы 1С, система может пытаться установить соединение по протоколу TLS 1.0. Почтовый сервер, настроенный на работу только с TLS 1.2, мгновенно сбросит такое подключение.
Проанализируем шаги для решения этой проблемы:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client.
Параметр Enabled должен иметь значение 1, а параметр DisabledByDefault — значение 0.
---
Иногда корни проблемы кроются непосредственно в кодовой базе конфигурации 1С. Разработчики могут допустить логическую ошибку, указав использование защищенного соединения SSL, но забыв переопределить стандартный порт, или наоборот.
Рассмотрим пример правильной инициализации почтового профиля для работы с защищенным протоколом POP3 (через SSL) в коде 1С:
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераPOP3 = "pop.yandex.ru"; // Указываем адрес сервера
Профиль.Пользователь = "my_email@yandex.ru";
Профиль.Пароль = "my_secure_app_password";
// КРИТИЧЕСКИ ВАЖНЫЕ НАСТРОЙКИ ШИФРОВАНИЯ:
Профиль.ИспользоватьSSLPOP3 = Истина; // Включаем SSL/TLS шифрование
Профиль.ПортPOP3 = 995; // Для защищенного POP3 порт должен быть строго 995 (не 110!)
Почта = Новый ИнтернетПочта;
Попытка
Почта.Подключиться(Профиль, ПротоколИнтернетПочты.POP3);
Сообщить("Успешно подключились к почтовому серверу по защищенному каналу!");
Исключение
Сообщить("Возникла ошибка подключения: " + ОписаниеОшибки());
КонецПопытки;
Если вы используете протокол IMAP, то настройки будут выглядеть аналогичным образом, но со своими специфическими параметрами портов:
ПрофильIMAP = Новый ИнтернетПочтовыйПрофиль;
ПрофильIMAP.АдресСервераIMAP = "imap.yandex.ru";
ПрофильIMAP.Пользователь = "my_email@yandex.ru";
ПрофильIMAP.Пароль = "my_secure_app_password";
// Настройки для безопасного IMAP подключения:
ПрофильIMAP.ИспользоватьSSLIMAP = Истина;
ПрофильIMAP.ПортIMAP = 993; // Для защищенного IMAP стандартный порт — 993 (не 143!)
ПочтаIMAP = Новый ИнтернетПочта;
Попытка
ПочтаIMAP.Подключиться(ПрофильIMAP, ПротоколИнтернетПочты.IMAP);
Сообщить("Соединение по IMAP успешно установлено!");
Исключение
Сообщить("Не удалось установить IMAP-соединение: " + ОписаниеОшибки());
КонецПопытки;
Убедитесь, что в ваших программных алгоритмах не происходит путаницы, когда свойство ИспользоватьSSLPOP3 установлено в значение Истина, а порт при этом остается равен 110. Попытка отправить зашифрованный SSL-трафик на незащищенный порт всегда приводит к незамедлительному разрыву TCP-соединения со стороны сервера.
---
В некоторых корпоративных инфраструктурах за безопасность отвечает специализированное ПО, установленное непосредственно на сервере 1С. Локальные антивирусные агенты или сетевые экраны (брандмауэры) часто содержат модули сканирования почты и проверки SSL-сертификатов (функция SSL-фильтрации или «перехват SSL/TLS-соединений»).
Когда 1С пытается установить защищенный сеанс с почтовым сервером, антивирус пытается вклиниться в этот процесс как посредник (Man-in-the-Middle) для проверки трафика на вирусы. Внешний почтовый сервер фиксирует подмену SSL-сертификата или некорректное прохождение рукопожатия TLS и прерывает соединение, возвращая в 1С ошибку «Unexpected TCP input disconnect».
Чтобы исключить этот фактор, выполните следующие действия:
993 (IMAP), 995 (POP3) и 465 (SMTPS).Применяя данные диагностические шаги, вы сможете быстро локализовать причину сбоя и восстановить стабильный обмен электронными письмами в информационной базе 1С:Предприятие.