Почему не отправляются письма из 1С через Яндекс и недоступна кнопка Отправить

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

При настройке встроенного почтового клиента в конфигурациях на базе БСП (например, 1С:Управление торговлей 11) разработчики и администраторы часто сталкиваются с ситуацией, когда тестовое сообщение из карточки учетной записи успешно уходит, но обычные исходящие письма зависают в базе, кнопка «Отправить» становится неактивной, а в веб-интерфейсе сервиса Яндекс в папке «Отправленные» сообщения отсутствуют. Разберем по шагам внутреннюю архитектуру отправки почты в 1С, выясним причину блокировки элементов формы и приведем рекомендации по правильной настройке.

Архитектура отправки писем в клиент-серверных базах

Проанализируем программный код типовой формы документа электронного письма. В клиент-серверном режиме работы информационных баз 1С поведение формы кардинально отличается от файлового режима.

Посмотрим на типовой фрагмент модуля формы исходящего письма:


Если Объект.СтатусПисьма = ПредопределенноеЗначение("Перечисление.СтатусыИсходящегоЭлектронногоПисьма.Исходящее") И 
    (НЕ ИнформационнаяБазаФайловая
    ИЛИ (Объект.ДатаКогдаОтправить <> Дата(1,1,1) И Объект.ДатаКогдаОтправить > ОбщегоНазначенияКлиент.ДатаСеанса())
    ИЛИ (Объект.ДатаАктуальностиОтправки <> Дата(1,1,1) И Объект.ДатаАктуальностиОтправки < ОбщегоНазначенияКлиент.ДатаСеанса())) Тогда
    Элементы.Отправить.Доступность = Ложь;
Иначе
    Элементы.Отправить.Доступность = Истина;
КонецЕсли;

Рассмотрим подробнее логику данного алгоритма:

  1. В клиент-серверной информационной базе (НЕ ИнформационнаяБазаФайловая) интерактивная отправка непосредственно из сеанса пользователя заблокирована разработчиками архитектуры БСП.
  2. При создании и сохранении письма оно получает статус Исходящее и помещается в очередь сообщений.
  3. Кнопка отправки на форме становится недоступной, так как за физическую доставку письма отвечает фоновый серверный процесс.

Если регламентная процедура не настроена, письма навсегда остаются в статусе Исходящее и фактически не покидают базу данных.

Настройка регламентного задания для отправки почты

Чтобы исходящие письма автоматически отправлялись сервером 1С, выполним следующие действия:

  1. Перейдем в раздел НСИ и администрирование → Обслуживание → Регламентные и фоновые задания.
  2. Найдем в списке регламентное задание Отправка и получение писем электронной почты (в зависимости от версии БСП может называться Загрузка и отправка электронных писем).
  3. Откроем карточку задания, установим флаг Включено и настроим расписание (например, каждые 60 секунд).
  4. Убедимся, что в консоли администрирования кластера серверов 1С для рабочей базы не установлен флаг Блокировка регламентных заданий включена.
  5. Проверим, что в настройках учетной записи электронной почты сохранен пароль, так как фоновое задание выполняется в неинтерактивном режиме от имени сервера.

Параметры подключения к почтовому серверу Яндекс

Разберем корректные параметры для карточки учетной записи электронной почты 1С при работе с сервисом Яндекс:

  1. Сервер исходящей почты (SMTP): smtp.yandex.ru.
  2. Порт SMTP: 465.
  3. Использовать безопасное соединение (SSL): Да (флаг установлен).
  4. Безопасная проверка пароля: Нет.
  5. Требуется вход на сервер перед отправкой: Нет.
  6. Аутентификация: в качестве логина необходимо указывать полный адрес электронной почты.

Важные особенности авторизации Яндекс:

  1. Пароли приложений: Яндекс запрещает использование основного пароля аккаунта для внешних программ. В настройках безопасности почтового ящика необходимо сгенерировать отдельный пароль приложения для раздела «Почта» и указать его в 1С.
  2. Разрешение доступа по протоколам: В веб-интерфейсе ящика в разделе настроек почтовых программ обязательно должен быть активирован доступ по протоколам IMAP и SMTP.
  3. Соответствие адреса отправителя: Почтовый сервер проверяет соответствие адреса в поле ИнтернетПочтовоеСообщение.Отправитель логину учетной записи SMTP. Если адрес отправителя подменяется, сервер вернет ошибку авторизации.

Почему отправленные письма не отображаются в веб-интерфейсе

Выясним причину, по которой отправленные через 1С письма отсутствуют в папке «Отправленные» веб-интерфейса Яндекс.

Протокол SMTP предназначен исключительно для передачи сообщений от клиента почтовому серверу и между серверами. Сам протокол SMTP не содержит команд для сохранения отправленной копии в почтовый ящик отправителя на сервере.

Чтобы письмо появилось в папке «Отправленные» при просмотре через веб-браузер, почтовый клиент должен после успешной SMTP-отправки выполнить подключение по протоколу IMAP и программно поместить копию сообщения в системную IMAP-папку «Отправленные» (Sent). Если типовой механизм конфигурации или отдельная процедура этого не делает, сообщение до адресата дойдет, но в веб-версии ящика отображаться не будет.

Диагностика сетевых проблем и альтернативные варианты

Если регламентное задание работает, но письма не уходят, проверим сетевое окружение сервера 1С:

  1. Проверим доступность портов 465 и 587 с сервера 1С с помощью утилит командной строки, чтобы исключить блокировки брандмауэром или провайдером.
  2. При использовании устаревших версий платформы 1С:Предприятие 8.3 возможны ошибки согласования протоколов TLS 1.2/1.3 при работе объекта ИнтернетПочтовыйПрофиль. В этом случае рекомендуется обновить версию платформы.
  3. В качестве альтернативы при нестабильной работе внешних соединений можно настроить локальный почтовый релей (SMTP Relay) на сервере или использовать прямую отправку через HTTP-сервисы почтовых систем с помощью объекта HTTPСоединение.
← На главную