Разберем частую ситуацию, с которой сталкиваются разработчики и администраторы: при попытке отправить электронное письмо из базы возникает сбой. Платформа выдает сообщение: Произошла ошибка при работе с SMTP. Код ошибки: 27. Выясним причину этой проблемы и рассмотрим по шагам, как правильно настроить подключение, чтобы почта отправлялась без перебоев.
В платформе 1С:Предприятие ошибка с кодом 27 расшифровывается как «Ошибка установки защищенного SSL/TLS соединения». Это означает, что сервер 1С не может договориться с почтовым сервером (например, Mail.ru или Яндекс) о безопасном канале связи. Проанализируем основные причины и способы решения этой задачи, начиная от правильного кода и заканчивая современными требованиями безопасности почтовых сервисов.
Рассмотрим подробнее настройки объекта ИнтернетПочтовыйПрофиль. Очень часто путаница возникает именно с портами и типами шифрования. Разберем два основных варианта:
ИспользоватьSSLSMTP = Истина.ТолькоЗащищеннаяАутентификация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;
Почта = Новый ИнтернетПочта;
Почта.Подключиться(Профиль);
Почта.Послать(Сообщение);
Почта.Отключиться();
Проанализируем крайне важный нюанс современных реалий. Почтовые сервисы (Mail.ru, Яндекс, Gmail) запретили авторизацию сторонних программ по обычному паролю пользователя. Если вы передадите в Профиль.ПарольSMTP тот пароль, с которым входите в веб-интерфейс почты, сервер отклонит подключение, что также может спровоцировать ошибки безопасности и аутентификации.
Что мы делаем в этом случае:
Профиль.ПарольSMTP.Учтем изменения в самой платформе 1С. После перехода на релизы 8.3.7 и выше разработчики платформы внесли коррективы в свойства. Свойство АутентификацияSMTP стало считаться устаревшим в контексте защищенных соединений. Вместо него рекомендуется использовать:
Профиль.ТолькоЗащищеннаяАутентификацияSMTP = Истина;
Рассмотрим специфическую проблему современных версий 1С (начиная с 8.3.20, 8.3.22 и выше). Разработчики усилили проверку SSL-сертификатов почтовых серверов. Из-за этого ошибка 27 стала появляться даже при абсолютно верном программном коде и настройках.
Чтобы обойти эту жесткую проверку и разрешить 1С доверять почтовому серверу, нам нужно отключить валидацию сертификата. Сделаем это на уровне конфигурационных файлов сервера:
conf.cfg (обычно он находится по пути C:\Program Files\1cv8\conf).IgnoreInternetMailServerCertificateVerificationList=smtp.mail.ru;imap.mail.ru;smtp.yandex.ru;Проанализируем ситуацию с точки зрения сетевого администрирования. Если ваша база работает в клиент-серверном варианте, выполнение кода Почта.Подключиться(Профиль) происходит на стороне сервера 1С, а не на компьютере пользователя, нажавшего кнопку.
Убедитесь вместе с системным администратором, что на машине, где крутится «Сервер 1С:Предприятия»:
Подводя итог, мы видим, что успешная отправка почты из 1С зависит от комбинации правильного кода (соответствие портов и флагов SSL/TLS), использования паролей приложений и корректных настроек службы сервера 1С. Внимательно проверьте каждый из этих пунктов, и ошибка 27 будет устранена. Для организации обмена письмами без самостоятельного написания кода можно воспользоваться расширением для отправки и получения почтовых сообщений.