Как исправить ошибку получения почты и подключения по SSL/TLS в 1С 8.3

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При настройке работы с электронной почтой в платформе 1С:Предприятие 8.3 через объект ИнтернетПочта разработчики часто сталкиваются с ситуацией, когда при попытке вызова метода Подключиться() возникает ошибка установления соединения или ошибка аутентификации.

Разберем детально причины возникновения ошибки 14 (ошибка установки защищенного SSL/TLS соединения), проанализируем настройки объекта ИнтернетПочтовыйПрофиль и рассмотрим пошаговое решение этой проблемы.

Анализ проблемы и характерных ошибок

Рассмотрим стандартный сценарий: при попытке подключения к серверу Mail.ru (или аналогичным почтовым сервисам Yandex, Gmail) платформа выдает одно из следующих сообщений:

  1. Ошибка установки защищенного SSL/TLS соединения (Код ошибки 14) — возникающая при несовпадении портов шифрования или неверных параметрах SSL.
  2. Произошла ошибка при аутентификации. Не найден подходящий безопасный метод — появляется при некорректно установленных флагах защищенной аутентификации в профиле.
  3. Адрес POP3 сервера не указан — вылетает в случаях, когда порт подключения или параметры аутентификации мешают платформе завершить рукопожатие (handshake) с сервером.

Проанализируем базовый код, в котором часто допускаются ошибки при заполнении свойств профиля почты:


&НаСервере
Процедура ПолучитьНаСервереПочтуОшибочныйВариант()
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    Профиль.АдресСервераPOP3 = "pop.mail.ru";
    Профиль.АдресСервераSMTP = "smtp.mail.ru"; 
    Профиль.Пользователь = "user@mail.ru";
    Профиль.Пароль = "secret";
    Профиль.ВремяОжидания = 10;
    
    // Ошибка 1: Стандартный порт 110 не работает при защищенном SSL-соединении
    Профиль.ПортPOP3 = 110; 
    
    Профиль.ИспользоватьSSLSMTP = Истина;
    Профиль.ИспользоватьSSLPOP3 = Истина;
    
    // Ошибка 2: Включение этих флагов блокирует согласование стандартных методов аутентификации Mail.ru
    Профиль.ТолькоЗащищеннаяАутентификацияPOP3 = Истина;
    Профиль.ТолькоЗащищеннаяАутентификацияSMTP = Истина;
    
    Сосоединение = Новый ИнтернетПочта;
    Сосоединение.Подключиться(Профиль, ПротоколИнтернетПочты.POP3);
КонецПроцедуры

Шаг 1. Корректировка параметров профиля в коде 1С

Посмотрим, какие свойства объекта ИнтернетПочтовыйПрофиль требуют изменения для корректной работы защищенного соединения SSL/TLS:

  1. Установка правильного порта: Для протокола POP3 с включенным SSL (ИспользоватьSSLPOP3 = Истина) необходимо использовать порт 995 (а не порт 110, предназначенный для незащищенного соединения). Для протокола SMTP с SSL используется порт 465 (или 587 при использовании STARTTLS).
  2. Отключение жесткой защищенной аутентификации: Свойства ТолькоЗащищеннаяАутентификацияPOP3 и ТолькоЗащищеннаяАутентификацияSMTP должны быть установлены в значение Ложь (или закомментированы). При их значении Истина платформа 1С пытается применить специфические алгоритмы шифрования паролей (например, NTLM/APOP), которые не поддерживаются большинством публичных почтовых серверов, что приводит к ошибке "Не найден подходящий безопасный метод".
  3. Настройка флага POP3ПередSMTP: По умолчанию параметр POP3ПередSMTP следует устанавливать в значение Ложь, если почтовый сервер не требует предварительной авторизации по POP3 для отправки писем через SMTP.

Рассмотрим исправный пример кода на сервере 1С:


&НаСервере
Процедура ПолучитьНаСервереПочтуКорректно()
    
    Профиль = Новый ИнтернетПочтовыйПрофиль;
    
    // Серверы и порты для SSL
    Профиль.АдресСервераPOP3 = "pop.mail.ru";
    Профиль.ПортPOP3 = 995; // Порт 995 для POP3 SSL
    
    Профиль.АдресСервераSMTP = "smtp.mail.ru"; 
    Профиль.ПортSMTP = 465; // Порт 465 для SMTP SSL
    
    // Пользователь и пароль (обязательно логин полностью)
    Профиль.Пользователь = "user@mail.ru";
    Профиль.Пароль = "пароль_внешнего_приложения"; // Пароль приложения из настроек почты
    
    Профиль.ПользовательSMTP = "user@mail.ru";
    Профиль.ПарольSMTP = "пароль_внешнего_приложения";
    
    Профиль.ВремяОжидания = 15;
    
    // Использование защищенного соединения SSL
    Профиль.ИспользоватьSSLPOP3 = Истина;
    Профиль.ИспользоватьSSLSMTP = Истина;
    
    // Отключаем жесткое требование защищенной аутентификации
    Профиль.ТолькоЗащищеннаяАутентификацияPOP3 = Ложь;
    Профиль.ТолькоЗащищеннаяАутентификацияSMTP = Ложь;
    Профиль.POP3ПередSMTP = Ложь;

    Почта = Новый ИнтернетПочта;
    
    Попытка
        Почта.Подключиться(Профиль, ПротоколИнтернетПочты.POP3);
        Сообщить("Подключение к почтовому серверу прошло успешно!");
        
        // Получаем письма
        Заголовки = Почта.ПолучитьЗаголовки();
        
        // Отключаемся после выполнения операций
        Почта.Отключиться();
    Исключение
        Сообщить("Не удалось подключиться к почтовому серверу: " + ОписаниеОшибки(), СтатусСообщения.Важное);
    КонецПопытки;
    
КонецПроцедуры

Шаг 2. Использование пароля приложения вместо основного пароля

Важный нюанс, который часто является причиной ошибок аутентификации — это политика безопасности современных почтовых сервисов (Mail.ru, Yandex, Gmail). Вход по основному паролю учетной записи для сторонних программ через протоколы POP3/IMAP/SMTP заблокирован по умолчанию.

Для успешной авторизации необходимо:

  1. Зайти в веб-интерфейс почтового ящика через браузер.
  2. Перейти в настройки безопасности учетной записи.
  3. Включить раздел «Пароли для внешних приложений».
  4. Сгенерировать новый пароль для платформы 1С.
  5. Указать сгенерированный 20-значный код в свойствах Профиль.Пароль и Профиль.ПарольSMTP.

Шаг 3. Решение проблем с валидацией SSL-сертификатов платформой 1С

Если код настроен верно, но ошибка подключения с кодом 14 продолжается на сервере 1С или в тонком клиенте, причиной может быть отсутствие доверия к SSL-сертификату почтового сервера на стороне операционной системы или платформы.

Проанализируем системный способ отключения проверки цепочки сертификатов для конкретных почтовых узлов.

В конфигурационный файл платформы conf.cfg (который находится в папке conf установленной платформы 1С, например: C:\Program Files\1cv8\conf\conf.cfg) добавляем следующую директиву:


IgnoreInternetMailServerCertificateVerificationList=pop.mail.ru;smtp.mail.ru;imap.mail.ru

Этот параметр позволяет платформе игнорировать ошибки проверки сертификатов SSL/TLS при работе объекта ИнтернетПочта для указанных хостов и успешно устанавливать защищенное соединение.

Резюме по устранению ошибок подключения:

← На главную