Как избежать блокировок почтовых сервисов при рассылке расчетных листков в 1С:ЗУП?

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

При массовой отправке расчетных листков из программы 1С:Зарплата и Управление Персоналом пользователи часто сталкиваются с тем, что почтовые сервисы (такие как Яндекс, Mail.ru или Gmail) начинают блокировать учетную запись отправителя. Основная причина кроется в антиспам-политиках: когда сервер видит сотни однотипных писем, уходящих за короткий промежуток времени, он помечает такую активность как подозрительную.

В этой статье мы подробно разберем, почему возникают эти ограничения, и рассмотрим несколько способов решения проблемы — от простых организационных мер до программной доработки системы с использованием расширений.

Выясним причину: почему Яндекс и Mail.ru блокируют рассылку?

Давайте проанализируем ситуацию. Почтовые сервисы борются за чистоту входящего трафика. Если ваша программа 1С:ЗУП отправляет, к примеру, 260 писем за 20 минут, это означает, что сообщения уходят примерно каждые 4-5 секунд. Для алгоритмов Яндекса это выглядит как работа автоматизированного скрипта рассылки спама.

Основные факторы блокировки:

  1. Интенсивность отправки: Слишком большое количество обращений к SMTP-серверу в единицу времени.
  2. Лимиты на количество получателей: Бесплатные и даже некоторые бизнес-тарифы имеют суточные ограничения на количество исходящих сообщений.
  3. Отсутствие цифровых подписей: Если ваш домен не настроен должным образом (отсутствуют SPF и DKIM), доверие к вашим письмам со стороны принимающих серверов минимально.

Ниже мы рассмотрим пошагово, как обойти эти ограничения.

Решение №1: Программная установка таймаута (Рекомендуемое)

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

Нам необходимо найти процедуру, отвечающую за отправку почты. Обычно это методы в общих модулях, связанных с почтовыми сообщениями (например, РаботаСПочтовымиСообщениями). Проанализируем код и добавим задержку. Автор темы экспериментальным путем определил, что пауза в 40 секунд позволяет полностью избежать блокировок.

Пример кода, который можно внедрить в процедуру цикла отправки писем:


&После("ОтправитьПочтовоеСообщение") // Или в цикле рассылки
Процедура ПриОтправкеКаждогоЛистка()
    // Устанавливаем паузу в секундах
    СекундПаузы = 40;
    КонечнаяДата = ТекущаяДата() + СекундПаузы;
    
    Пока ТекущаяДата() < КонечнаяДата Цикл
        // Пустой цикл для ожидания или использование метода ПодключитьОбработчикОжидания
        // В фоновых заданиях лучше использовать конструкцию ожидания через блокировку или пинг
    КонецЦикла;
КонецПроцедуры

Важный момент: Чтобы основной сеанс пользователя не «висел» во время ожидания, рассылку рекомендуется запускать как ФоновоеЗадание. В этом случае сервер будет спокойно отправлять письма в фоновом режиме, соблюдая интервалы, а бухгалтер сможет продолжать работу в программе.

Решение №2: Сегментация рассылки по подразделениям

Если вы не хотите вносить изменения в программный код, можно воспользоваться организационным методом. Вместо того чтобы нажимать кнопку «Отправить всем», попробуем разделить сотрудников на группы.

Разберем этот процесс по шагам:

  1. В форме рассылки расчетных листков настройте отбор по конкретному Подразделению.
  2. Отправьте листки для первой группы сотрудников (например, 20-30 человек).
  3. Сделайте паузу в 10–15 минут.
  4. Выберите следующее подразделение и повторите процесс.

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

Решение №3: Переход на сервис «1С:Кабинет сотрудника»

Рассмотрим более современный и официальный путь. Фирма 1С предлагает специализированный сервис 1С:Кабинет сотрудника. Это решение кардинально меняет подход к выдаче расчетных листков.

Почему это лучше обычной почты?

Единственным минусом здесь является необходимость приобретения дополнительных лицензий, однако это полностью снимает технические проблемы с SMTP-серверами.

Решение №4: Техническая настройка почтового домена

Если вы используете корпоративную почту на базе Яндекса (Яндекс 360), необходимо убедиться, что ваш домен настроен правильно. Если письма часто попадают в спам или блокируются, проверим следующие записи в DNS вашего домена:

  1. SPF-запись: Она должна содержать include:_spf.yandex.net. Это говорит принимающему серверу, что Яндексу разрешено отправлять почту от вашего имени.
  2. DKIM-подпись: Это «цифровая печать». В консоли управления почтой Яндекса нужно сгенерировать ключ и добавить его в TXT-запись домена. Письма с DKIM имеют гораздо более высокий уровень доверия.
  3. DMARC: Настройка политики обработки писем. Начните с мягкой политики p=none, чтобы отследить статистику доставок.

Проанализируем также вариант с «пересылкой», предложенный в обсуждении. Можно создать внутренние учетные записи для всех сотрудников внутри вашего домена (например, user1@vash-domen.ru), отправлять расчетные листки на них (внутри домена лимиты обычно мягче), а на самих ящиках настроить автоматическую пересылку на личные почты сотрудников. Это сложнее в настройке, но может помочь обойти внешние фильтры.

Подведем итоги

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

Помните, что современные почтовые системы становятся все более строгими к автоматизированным рассылкам, поэтому использование личных ящиков (на @yandex.ru или @mail.ru) для бизнес-задач становится практически невозможным без соблюдения строгих интервалов и правил настройки почтового сервера.

← На главную