Как исправить ошибку 27 (ошибка SSL/TLS) при работе с SMTP в 1С?

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

Разберем частую ситуацию, с которой сталкиваются разработчики и администраторы: при попытке отправить электронное письмо из базы возникает сбой. Платформа выдает сообщение: Произошла ошибка при работе с SMTP. Код ошибки: 27. Выясним причину этой проблемы и рассмотрим по шагам, как правильно настроить подключение, чтобы почта отправлялась без перебоев.

Что означает код ошибки 27?

В платформе 1С:Предприятие ошибка с кодом 27 расшифровывается как «Ошибка установки защищенного SSL/TLS соединения». Это означает, что сервер 1С не может договориться с почтовым сервером (например, Mail.ru или Яндекс) о безопасном канале связи. Проанализируем основные причины и способы решения этой задачи, начиная от правильного кода и заканчивая современными требованиями безопасности почтовых сервисов.

Шаг 1. Правильная настройка портов и протоколов шифрования

Рассмотрим подробнее настройки объекта ИнтернетПочтовыйПрофиль. Очень часто путаница возникает именно с портами и типами шифрования. Разберем два основных варианта:

  1. Порт 465 (SSL): Если вы используете этот порт, параметр шифрования должен быть строго SSL. В коде это указывается свойством ИспользоватьSSLSMTP = Истина.
  2. Порт 587 (STARTTLS): При использовании данного порта необходимо использовать протокол STARTTLS. Обычный SSL должен быть отключен, а вместо него применяется свойство ТолькоЗащищеннаяАутентификацияSMTP = Истина. Обратите внимание: совмещать их нельзя!

Посмотрим на пример рабочего кода для порта 465 (на примере Mail.ru), который помог решить проблему:


Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "smtp.mail.ru";
Профиль.ПользовательSMTP = "ваша_почта@mail.ru";
Профиль.ПарольSMTP = "ваш_пароль";
Профиль.ПортSMTP = 465;

// Включаем SSL
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;

Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);

Аналогичный пример для сервиса Яндекс, который отлично работает на платформе 8.3:


Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "smtp.yandex.ru";
Профиль.ПользовательSMTP = "МойЛогин@yandex.ru";
Профиль.ПарольSMTP = "МойПароль";
Профиль.ПортSMTP = 465;
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.Login;

Сообщение = Новый ИнтернетПочтовоеСообщение;
Сообщение.Получатели.Добавить("Получатель@домен");
Сообщение.Тема = "Проверка почты";
Сообщение.Отправитель.Адрес = Профиль.ПользовательSMTP;

Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
Почта.Послать(Сообщение);
Почта.Отключиться();

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

Проанализируем крайне важный нюанс современных реалий. Почтовые сервисы (Mail.ru, Яндекс, Gmail) запретили авторизацию сторонних программ по обычному паролю пользователя. Если вы передадите в Профиль.ПарольSMTP тот пароль, с которым входите в веб-интерфейс почты, сервер отклонит подключение, что также может спровоцировать ошибки безопасности и аутентификации.

Что мы делаем в этом случае:

  1. Заходим в настройки безопасности вашего почтового ящика через обычный браузер.
  2. Включаем доступ для почтовых программ (по протоколам IMAP/POP3 и SMTP).
  3. Находим раздел «Пароли приложений» (или «Пароли для внешних программ») и создаем новый пароль.
  4. Сервис сгенерирует для вас длинную строку (обычно без пробелов). Именно ее мы и вставляем в 1С в параметр Профиль.ПарольSMTP.

Шаг 3. Устаревшие методы и версии платформы

Учтем изменения в самой платформе 1С. После перехода на релизы 8.3.7 и выше разработчики платформы внесли коррективы в свойства. Свойство АутентификацияSMTP стало считаться устаревшим в контексте защищенных соединений. Вместо него рекомендуется использовать:

Профиль.ТолькоЗащищеннаяАутентификацияSMTP = Истина;

Шаг 4. Ошибка проверки сертификатов в новых платформах (8.3.20+)

Рассмотрим специфическую проблему современных версий 1С (начиная с 8.3.20, 8.3.22 и выше). Разработчики усилили проверку SSL-сертификатов почтовых серверов. Из-за этого ошибка 27 стала появляться даже при абсолютно верном программном коде и настройках.

Чтобы обойти эту жесткую проверку и разрешить 1С доверять почтовому серверу, нам нужно отключить валидацию сертификата. Сделаем это на уровне конфигурационных файлов сервера:

  1. Переходим на сервер, где установлена служба сервера 1С:Предприятия.
  2. Находим файл конфигурации conf.cfg (обычно он находится по пути C:\Program Files\1cv8\conf).
  3. Открываем его в текстовом редакторе и добавляем строку со списком серверов-исключений. Например:
    IgnoreInternetMailServerCertificateVerificationList=smtp.mail.ru;imap.mail.ru;smtp.yandex.ru;
  4. Сохраняем файл и обязательно перезапускаем службу сервера 1С.

Шаг 5. Сетевые ограничения сервера 1С

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

Убедитесь вместе с системным администратором, что на машине, где крутится «Сервер 1С:Предприятия»:

  1. Открыты исходящие подключения по нужным портам (465, 587, 993, 25).
  2. Антивирус или брандмауэр не подменяет SSL-сертификаты и не блокирует SMTP-трафик.

Подводя итог, мы видим, что успешная отправка почты из 1С зависит от комбинации правильного кода (соответствие портов и флагов SSL/TLS), использования паролей приложений и корректных настроек службы сервера 1С. Внимательно проверьте каждый из этих пунктов, и ошибка 27 будет устранена. Для организации обмена письмами без самостоятельного написания кода можно воспользоваться расширением для отправки и получения почтовых сообщений.

← На главную