Интеграция почтовых сервисов с программами 1С нередко сопровождается трудностями, особенно когда речь идет о защищенных соединениях по протоколам SSL/TLS почтовой службы Gmail и конфигурациях на базе подсистемы «Взаимодействия» («1С:Управление торговлей 11»). Разберем типичную цепочку проблем, с которыми сталкиваются администраторы и разработчики: от корректного описания параметров локального прокси-сервиса до системных механизмов очереди отправки сообщений в платформе «1С:Предприятие 8.3».
При использовании устаревших платформ или специфических режимов совместимости конфигураций прямое подключение к защищенным портам почтовых сервисов через встроенный объект ИнтернетПочтовыйПрофиль может вызывать трудности. В таких случаях традиционно используют локальный SSL-прокси stunnel, принимающий незашифрованное соединение от 1С на локальном адресе и передающий его во внешний мир через защищенный канал.
Проанализируем распространенную ошибку, возникающую при запуске туннеля: SMTP greeting failure: 421 SMTP connection broken (reply) или ошибку разбора файла Specified option name is not valid here при добавлении параметров службы. Выясним причину такого поведения утилиты:
service относится к созданию и управлению службой Windows из командной строки и не должен находиться внутри рабочего конфигурационного файла stunnel.conf. Наличие этой строки приводит к аварийной остановке сервиса с сообщением Server is down.client = yes обязательно должна присутствовать в глобальной секции конфигурации, чтобы stunnel понимал, что выступает в роли клиента, а не защищенного сервера.protocol = smtp. При использовании прямого SSL на порту 465 достаточно базовой переадресации.Посмотрим на рабочий пример файла stunnel.conf для корректной маршрутизации почтового трафика Gmail:
client = yes
output = stunnel-log.txt
debug = 5
[SMTP Gmail]
accept = 127.0.0.1:25
connect = smtp.gmail.com:465
[POP3 Gmail]
accept = 127.0.0.1:110
connect = pop.gmail.com:995
После корректировки конфигурации и перезапуска службы stunnel интерактивная проверка учетной записи в 1С успешно завершается и тестовое письмо поступает в почтовый ящик.
Частая ситуация при работе с конфигурацией «1С:Управление торговлей 11»: проверка подключения через форму учетной записи завершается без ошибок, однако письма, созданные пользователями вручную, не доходят до адресатов и зависают в системе. Разберем по шагам архитектурные причины этого явления в «1С:Предприятии 8.3».
Проанализируем различия в работе интерактивной проверки и регламентных механизмов:
127.0.0.1:25 сервис stunnel.Получение и отправка электронных писем. Фоновые задания исполняются рабочими процессами сервера 1С (rphost).127.0.0.1:25 сервер обращается к своему собственному локальному сетевому интерфейсу, где stunnel не запущен.accept = 0.0.0.0:25 и укажем в учетной записи 1С реальный IP-адрес этого хоста в локальной сети вместо локальной петли.Если служба прокси настроена корректно, проверим состояние регламентного задания Получение и отправка электронных писем:
Получение и отправка электронных писем, проверим, установлен ли признак Включено, и проанализируем расписание выполнения (по умолчанию рекомендуется запуск каждые несколько минут).Если пользователям требуется, чтобы письма отправлялись сразу же в момент нажатия кнопки отправки, минуя буферизацию в регламентных заданиях, настроим персональные параметры работы с почтой:
После включения этой опции исходящее письмо при нажатии кнопки отправки не будет помещаться в очередь со статусом ожидания регламентной обработки, а будет немедленно передано в транспортный модуль 1С.
Проанализируем дополнительные скрытые факторы, которые препятствуют отправке почты:
Отметим, что использование стороннего туннеля stunnel являлось вынужденной мерой для старых версий платформы «1С:Предприятие 8.1» и «8.2». В среде «1С:Предприятие 8.3» объект ИнтернетПочтовыйПрофиль нативно поддерживает защищенные SSL/TLS-подключения, исключая необходимость в сторонних утилитах:
Профиль = Новый ИнтернетПочтовыйПрофиль;
Профиль.АдресСервераSMTP = "smtp.gmail.com";
Профиль.ПортSMTP = 465;
Профиль.ИспользоватьSSLSMTP = Истина;
Профиль.ПользовательSMTP = "user@gmail.com";
Профиль.ПарольSMTP = "пароль_приложения";
Профиль.АутентификацияSMTP = СпособSMTPАутентификации.ПоУмолчанию;
Если конфигурация «Управление торговлей 11» обновлена и не использует строгий режим совместимости с версией 8.2, рекомендуется перейти на прямое подключение с включением защищенных соединений в стандартной форме настройки системной учетной записи электронной почты.