Настройка отправки электронной почты из конфигурации «Управление производственным предприятием» (УПП, редакция 1.3) часто сопряжена с трудностями, особенно если база работает на платформе 1С:Предприятие 8.3, но использует режим совместимости «Версия 8.2.13». В этой статье мы подробно разберем причины возникновения сетевых ошибок и сбоев шифрования, а также рассмотрим два основных сценария решения задачи: настройку защищенного соединения с внешними сервисами (на примере Mail.ru) через локальный прокси-сервер Stunnel и организацию бесперебойной отправки писем через корпоративный почтовый сервер Microsoft Exchange.
При использовании публичных почтовых серверов, таких как Mail.ru, Яндекс.Почта или Gmail, обязательным условием является поддержка современных протоколов безопасного соединения SSL/TLS (обычно TLS 1.2 или TLS 1.3). Однако встроенный в платформу 1С механизм ИнтернетПочта в режиме совместимости 8.2.13 не умеет корректно работать с данными протоколами шифрования напрямую.
Попытка указать в коде стандартные порты шифрования (465 или 995) и установить свойство ИспользоватьSSLSMTP = Истина неизбежно приводит к одной из следующих ошибок:
SMTP greeting failure: 421 SMTP connection broken — сервер мгновенно разрывает связь, так как 1С не может завершить процедуру рукопожатия (SSL/TLS Handshake).Can't connect to pop.mail.ru,995: Timed out — превышено время ожидания ответа от сервера шифрования.Рассмотрим, как решить эти проблемы последовательно.
---
Если необходимо настроить отправку через внешние защищенные серверы (Mail.ru, Yandex), а переводить конфигурацию на более современный режим совместимости нельзя, единственным надежным выходом является использование утилиты Stunnel. Она берет на себя всю работу по шифрованию трафика.
Проанализируем архитектуру этой схемы. Утилита Stunnel устанавливается непосредственно на сервере 1С:Предприятия. Она создает локальный порт (например, 25), который слушает входящие соединения от 1С. Получив нешифрованный пакет от 1С, Stunnel упаковывает его в защищенный TLS-тоннель и передает на внешний порт Mail.ru (465).
Шаг 1. Конфигурация файла stunnel.conf
Для корректной работы с почтовыми протоколами администратору необходимо прописать в файле конфигурации stunnel.conf следующие параметры:
[SMTP mail]
client = yes
accept = 127.0.0.1:25
connect = smtp.mail.ru:465
protocol = smtp
[POP3 mail]
client = yes
accept = 127.0.0.1:110
connect = pop.mail.ru:995
protocol = pop3
Важный нюанс: Обязательно указывайте параметр protocol = smtp (и protocol = pop3 для получения почты). Без явного указания протокола почтовые серверы будут отвергать попытки авторизации из-за несоответствия команд шифрования.
Шаг 2. Настройка кода в 1С под Stunnel
После запуска службы Stunnel на сервере, в коде 1С необходимо указать параметры локального хоста. Самой частой ошибкой разработчиков является сохранение старых настроек шифрования в коде при включенном Stunnel. Выясним, как правильно инициализировать профиль в 1С:
Функция ПолучитьПрофильДляStunnel() Экспорт
Профиль = Новый ИнтернетПочтовыйПрофиль;
// Перенаправляем трафик на локальный адрес, где запущен Stunnel
Профиль.АдресСервераSMTP = "127.0.0.1";
Профиль.ПортSMTP = 25; // Порт accept из конфига Stunnel
Профиль.АдресСервераPOP3 = "127.0.0.1";
Профиль.ПортPOP3 = 110;
// ВАЖНО: Отключаем шифрование в самой 1С, так как шифрованием занимается Stunnel
Профиль.ИспользоватьSSLPOP3 = Ложь;
Профиль.ИспользоватьSSLSMTP = Ложь;
// Указываем учетные данные
Профиль.Пользователь = "your_login@mail.ru";
Профиль.ПользовательSMTP = "your_login@mail.ru";
// Внимание! Обычный пароль от ящика больше не принимается публичными сервисами.
// Сюда необходимо вставлять специально сгенерированный "Пароль для внешних приложений"
Профиль.Пароль = "abcd-efgh-ijkl-mnop";
Профиль.ПарольSMTP = "abcd-efgh-ijkl-mnop";
Профиль.ВремяОжидания = 60;
Возврат Профиль;
КонецФункции
Обратите внимание на авторизацию: Сервисы вроде Mail.ru, Yandex и Gmail заблокировали возможность авторизации в сторонних почтовых клиентах по основному паролю учетной записи. Вам нужно зайти в настройки безопасности личного кабинета почты, найти раздел «Пароли для сторонних приложений» (или «Пароли приложений»), сгенерировать новый уникальный пароль для 1С и прописать его в коде.
---
Если при попытке соединения вы получаете ошибку Host not found (#11001): smtp.mail.ru, это однозначно указывает на сетевые проблемы или неверную маршрутизацию. Разберем по шагам, как локализовать и устранить эту неисправность:
ЭлектроннаяПочта) выполняется на стороне сервера 1С (под учетной записью службы usr1cv8), а не на вашем локальном компьютере. Соответственно, все тесты доступности нужно проводить непосредственно с физического или виртуального сервера, где развернута служба Агента 1С:Предприятия.nslookup smtp.mail.ru
Если команда возвращает ошибку или не может разрешить имя в IP-адрес, значит, на сервере некорректно настроены DNS-серверы организации.Test-NetConnection smtp.mail.ru -Port 465
Если значение поля TcpTestSucceeded вернет False, необходимо обратиться к системному администратору для открытия исходящего трафика на внешнем шлюзе сети.---
Наиболее надежным, масштабируемым и архитектурно правильным решением для крупного предприятия является интеграция 1С с локально развернутым сервером Microsoft Exchange. Это полностью убирает зависимость от интернета, лимитов внешних почтовых провайдеров и проблем с несовместимостью SSL/TLS.
Выясним, как настроить интеграцию по максимально простой и быстрой схеме — через анонимный релей (Relay) без шифрования.
Шаг 1. Настройка Exchange Server администратором
Чтобы сервер 1С мог отправлять письма через Exchange без авторизации и SSL, системному администратору почтовой системы необходимо выполнить следующие действия в Exchange Admin Center (EAC):
1C_SMTP_Relay.0.0.0.0-255.255.255.255 и жестко прописать только IP-адрес сервера 1С. Это защитит систему от несанкционированной отправки спама внутри сети.
Get-ReceiveConnector "1C_SMTP_Relay" | Add-ADPermission -User "NT AUTHORITY\ANONYMOUS LOGON" -ExtendedRights "Ms-Exch-SMTP-Accept-Any-Recipient"
Примечание: Если операционная система сервера Exchange имеет русскую локализацию, вместо пользователя NT AUTHORITY\ANONYMOUS LOGON может потребоваться указать локализованное имя группы, например АНОНИМНЫЙ ВХОД.
Шаг 2. Код настройки почтового профиля в 1С
После того как системный администратор настроил выделенный релей для IP-адреса вашего сервера 1С, программный код настройки подключения в 1С:УПП сокращается до минимального набора параметров, не требующего хранения паролей в базе данных:
Функция ПолучитьПрофильExchange() Экспорт
Профиль = Новый ИнтернетПочтовыйПрофиль;
// Указываем DNS-имя или IP-адрес локального сервера Exchange
Профиль.АдресСервераSMTP = "exchange.corp.local";
Профиль.ПортSMTP = 25;
// Отключаем аутентификацию, так как авторизация идет по IP-адресу сервера 1С
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.БезАутентификации;
// Полностью отключаем SSL/TLS механизмы
Профиль.ИспользоватьSSLSMTP = Ложь;
// Настройки таймаута соединения
Профиль.ВремяОжидания = 30;
Возврат Профиль;
КонецФункции
Этот программный код гарантированно выполнится на любой версии платформы 1С и при любых включенных режимах совместимости, поскольку не использует тяжелые криптографические функции ОС при установлении SMTP-сессии.
Предотвращение ошибок троттлинга на Exchange: При массовой рассылке (например, отправка расчетных листков или счетов клиентам из 1С) сервер Exchange может разорвать сессию с ошибкой 421 4.4.2 Message submission rate for this client has exceeded the configured limit. Чтобы снять данное ограничение, администратору почтового сервера следует выполнить команду:
Set-ReceiveConnector "1C_SMTP_Relay" -MessageRateLimit unlimited -MaxHeaderSizeBytes 10485760
Применение данных методик позволит вам быстро локализовать проблему с отправкой почты из УПП 1.3 и выбрать наиболее стабильный способ интеграции с почтовыми системами.