Как организовать бесплатную email-рассылку из 1С и избежать блокировок?

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

В практике автоматизации бизнеса часто возникает задача организовать рассылку новостей или акций клиентам непосредственно из базы 1С. Однако платные сервисы рассылок при больших объемах могут стоить значительно, а бесплатные имеют жесткие ограничения. В рамках данной статьи мы разберем, как реализовать механизм отправки до 500 и более сообщений в день, используя бесплатные инструменты и обходя ограничения почтовых сервисов.

Анализ проблемы и выбор стратегии

Основная сложность при массовой отправке писем через обычные почтовые ящики (например, mail.ru или yandex.ru) заключается в алгоритмах защиты от спама. Если вы попытаетесь отправить 500 писем подряд с одного ящика, он будет заблокирован в течение первых минут. Для решения этой задачи мы проанализируем три основных подхода:

  1. Создание "гирлянды" учетных записей: Использование нескольких почтовых ящиков с ротацией и паузами.
  2. Интеграция с облачными сервисами: Использование бесплатных лимитов специализированных провайдеров (Brevo, UniSender).
  3. Собственный почтовый сервер: Настройка Postfix или Exim для полного контроля над процессом.

Решение 1: Алгоритм ротации учетных записей в 1С

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

Для реализации этой схемы в 1С нам потребуется создать Регистр сведений, например, ЛимитыОтправкиПочты, со следующими измерениями и ресурсами:

Разберем логику выбора учетной записи по шагам. Нам нужно найти ту запись, по которой лимит в 100 писем в день еще не исчерпан. Посмотрим на пример кода для выбора доступной почты:


Функция ПолучитьДоступнуюУчетнуюЗапись()
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ 1
    |	УчетныеЗаписи.Ссылка КАК Учетка
    |ИЗ
    |	Справочник.УчетныеЗаписиЭлектроннойПочты КАК УчетныеЗаписи
    |ГДЕ
    |	НЕ УчетныеЗаписи.ПометкаУдаления
    |	И УчетныеЗаписи.Ссылка НЕ В (
    |		ВЫБРАТЬ Регистр.УчетнаяЗапись 
    |		ИЗ РегистрСведений.ЛимитыОтправкиПочты КАК Регистр 
    |		ГДЕ Регистр.ДатаОтправки = &ТекущаяДата И Регистр.КоличествоОтправлено >= 100)";
    
    Запрос.УстановитьПараметр("ТекущаяДата", НачалоДня(ТекущаяДата()));
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
        Возврат Неопределено;
    Иначе
        Выборка = Результат.Выбрать();
        Выборка.Следующий();
        Возврат Выборка.Учетка;
    КонецЕсли;
КонецФункции

После выбора учетной записи необходимо реализовать отправку с паузой. Проанализируем ситуацию: пауза в 3-5 секунд позволяет имитировать действия человека. Для этого используем метод ПодключитьОбработчикОжидания или Приостановить (в фоновом задании).

Решение 2: Использование специализированных сервисов через API

Если клиент готов на минимальные настройки, лучше всего использовать сервисы вроде Brevo (Sendinblue) или UniSender Go. Многие из них предоставляют до 300-500 писем в день бесплатно. Основное преимущество здесь — высокая доставляемость и наличие готовых механизмов отписки.

Выясним причину, почему это надежнее: при использовании API вы отправляете не просто текст, а структурированные данные, а сервис сам заботится о цифровых подписях SPF и DKIM. В 1С это реализуется через HTTPЗапрос.

Пример структуры запроса к API для отправки (условно):


Соединение = Новый HTTPСоединение("api.brevo.com", 443,,,,, Новый ЗащищенноеСоединениеOpenSSL());
Запрос = Новый HTTPЗапрос("/v3/smtp/email");
Запрос.Заголовки.Вставить("api-key", "ВАШ_КЛЮЧ");
Запрос.Заголовки.Вставить("Content-Type", "application/json");

СтруктураПисьма = Новый Структура;
СтруктураПисьма.Вставить("sender", Новый Структура("email", "info@company.ru"));
СтруктураПисьма.Вставить("to", Новый Массив); // Добавляем получателей
СтруктураПисьма.Вставить("htmlContent", "Текст сообщения");
// Преобразуем в JSON и отправляем...

Важные технические требования 2024 года

Проанализируем современные требования почтовых систем (Google, Mail.ru, Яндекс). С 2024 года требования ужесточились. Даже если вы используете бесплатные ящики, важно соблюдать следующие правила, чтобы не попасть в "спамерские":

  1. SPF, DKIM и DMARC: Если вы используете собственный домен (например, @OurCompany.ru), эти записи должны быть настроены в DNS. Без них письма будут блокироваться.
  2. Ссылка на отписку: Это обязательное требование законодательства (ФЗ-38 "О рекламе"). Каждое письмо должно содержать понятный механизм отказа от рассылки.
  3. Чистота базы: Если 0,3% получателей нажмут кнопку "Это спам", ваш домен или IP попадет в черный список навсегда. Проверяйте актуальность контрагентов в 1С перед рассылкой.

Использование фоновых заданий

Рассылка даже 500 писем с задержкой в 5 секунд займет около 40 минут. Если запустить этот процесс в основном потоке, 1С "зависнет" для пользователя. Разберем, как правильно вынести этот процесс в ФоновыеЗадания.

Создайте общий модуль с признаком "Сервер" и процедуру для рассылки. Вызывайте её следующим образом:


ПараметрыЗадания = Новый Массив;
ПараметрыЗадания.Добавить(СписокПолучателей);
ФоновыеЗадания.Выполнить("ОбщийМодульРассылка.ВыполнитьРассылкуСервер", ПараметрыЗадания);

Внутри процедуры ВыполнитьРассылкуСервер обязательно используйте попытку-исключение для обработки ошибок подключения к SMTP-серверу. Помним, что бесплатные почтовики часто рвут соединение при подозрении на подозрительную активность.

Юридические аспекты и персональные данные

Не забывайте, что электронная почта — это персональные данные (ФЗ-152). Прежде чем настраивать рассылку из 1С, убедитесь, что в договоре с контрагентом или в отдельном согласии прописано право компании отправлять информационные и рекламные сообщения. В противном случае компания рискует получить штраф до 500 000 рублей.

Резюмируем: Для небольших объемов (до 500 писем) схема с ротацией аккаунтов mail.ru через справочник учетных записей 1С является рабочей, но требует аккуратной настройки пауз и лимитов. Для более профессионального подхода и гарантии доставки рекомендуем использовать специализированные SMTP-релеи с настроенными цифровыми подписями.

← На главную