При переходе на платформу 1С:Предприятие версии 8.3.12.1529 и выше многие разработчики сталкиваются с тем, что стабильно работавший ранее механизм отправки почты через ИнтернетПочтовыйПрофиль внезапно перестает функционировать. Основным симптомом является ошибка "Ошибка установки SSL/TLS соединения" с кодом 14. Особенно часто это проявляется при использовании защищенных соединений POP3 или SMTP.
В рамках этой статьи мы подробно проанализируем ситуацию, выясним причины такого поведения платформы и разберем по шагам способы устранения проблемы, опираясь на технические особенности обновленных сетевых механизмов 1С.
Начиная с версии 8.3.12, платформа 1С перешла на использование более современных библиотек OpenSSL и изменила логику работы с системными хранилищами сертификатов. Если раньше платформа могла «прощать» отсутствие цепочки доверия или использование самоподписанных сертификатов, то в новых релизах требования стали гораздо строже.
Рассмотрим подробнее, что нужно проверить:
АдресСервераSMTP указан IP-адрес, а SSL-сертификат выписан на доменное имя (например, mail.company.ru), соединение будет разорвано с ошибкой 14. Платформа блокирует соединение из-за несоответствия имени узла и данных сертификата.В платформе 8.3.12+ приоритетным протоколом стал TLS 1.2. Многие старые почтовые серверы (или некорректно настроенные современные) могут поддерживать только устаревшие протоколы TLS 1.0 или 1.1. В этом случае попытка согласования (handshake) обрывается.
Чтобы решить эту задачу, мы можем пойти двумя путями:
Посмотрим на пример кода, который часто приводит к ошибке на новых платформах:
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.POP3ПередSMTP = Истина;
Профиль.АдресСервераSMTP = "smtp.yandex.ru";
Профиль.ПортSMTP = 25;
Профиль.ИспользоватьSSLPOP3 = Истина;
Профиль.ПортPOP3 = 995;
Метод POP3ПередSMTP является морально устаревшим. При его использовании 1С сначала авторизуется на POP3-сервере, а затем пытается отправить почту через SMTP. В современных версиях платформы 8.3.12+ такая связка часто вызывает ошибку "Command is not valid in this state" (код 5), если один из протоколов использует SSL, а другой — нет, либо если сессия обрывается защитными механизмами сервера.
Проанализируем современный подход к настройке профиля. Мы рекомендуем отказаться от POP3ПередSMTP и использовать явную авторизацию через SMTP с шифрованием. Рассмотрим по шагам, как перенастроить профиль:
Пример исправленного кода для отправки через защищенное соединение:
Профиль = Новый ИнтернетПочтовыйПрофиль;
// Отказываемся от POP3ПередSMTP
Профиль.POP3ПередSMTP = Ложь;
// Настройки SMTP для защищенного соединения
Профиль.АдресСервераSMTP = "smtp.mail.ru";
Профиль.ПортSMTP = 465; // Стандартный порт для SSL
Профиль.ПользовательSMTP = "login@mail.ru";
Профиль.ПарольSMTP = "your_app_password"; // Используйте пароль приложения!
// Важные свойства для новых платформ
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.ТолькоЗащищеннаяАутентификация = Ложь; // Попробуйте Истина, если сервер требует NTLM/Kerberos
// Если нужно игнорировать ошибки сертификата (только для отладки!)
// Внимание: свойство доступно в самых новых релизах
// Профиль.ПроверятьСертификатСервера = Ложь;
Если ваш сервер 1С работает на Linux, выясним причину возникновения ошибки 14 в этой среде. Начиная с 8.3.12, платформа напрямую зависит от системной библиотеки libssl. Если версия библиотеки в дистрибутиве (например, в старых версиями Debian или CentOS) не совпадает с ожидаемой платформой или имеет ограниченный набор шифров (ciphers), соединение не установится.
В этом случае рекомендуется:
libssl.so и libcrypto.so.Подводя итог, разберем краткий чек-лист для исправления ошибки 14:
ПортSMTP = 25 одновременно с ИспользоватьSSLSMTP = Истина. Для SSL используйте порт 465.Соблюдение этих правил позволит вам избежать проблем с защищенными соединениями на современных версиях платформы 1С.