Почему письма не доходят, если SMTP настроен?
Мы часто сталкиваемся с ситуацией, когда даже при корректном SMTP письма теряются. Основные причины: отсутствие SPF/DKIM-записей, невыполнение агентов очереди, превышение лимитов почтового сервера. Например, если в настройках SMTP указан порт 25 без шифрования, многие современные провайдеры блокируют соединение. Рекомендуем порт 587 с STARTTLS или 465 с SSL — это стандарт безопасности. В одном из наших проектов на каталоге 50 000 товаров письма уходили с задержкой до часа; после перевода агентов на cron и настройки SMTP время доставки сократилось до 10 секунд. Такая экономия времени возвращает до 8 часов административной работы в неделю.
Архитектура почтовых уведомлений в Битрикс
Почтовая система Битрикс состоит из трёх уровней: почтовые события, шаблоны и служба отправки.
Почтовые события
Тип события (например, SALE_NEW_ORDER) определяет набор макросов и параметров. Настраивается в административной панели: Настройки → Почта → Почтовые события.
Шаблоны почтовых событий
Конкретное письмо для события: адресат, тема, тело. Один тип события может иметь несколько шаблонов для разных сайтов или условий. Настройка: Настройки → Почта → Шаблоны почты.
Служба отправки почты
Выбор способа доставки: sendmail, mail(), SMTP или внешние сервисы (Mailgun, SendGrid). Для проектов с высокой нагрузкой используем SMTP с аутентификацией. SMTP в 10 раз надёжнее sendmail при объёме более 1000 писем в день. Настройка: Настройки → Настройки продукта → Почта.
Стандартные события и их настройка
Битрикс поставляется с предустановленными событиями. Для интернет-магазина ключевые:
-
SALE_NEW_ORDER — новый заказ
-
SALE_ORDER_PAID — заказ оплачен
-
SALE_ORDER_CANCELED — заказ отменён
-
SALE_STATUS_CHANGED — изменение статуса
-
MAIN_USER_REGISTER — регистрация
-
MAIN_USER_PASS_CHANGED — смена пароля
Для каждого события настраиваем: FROM, TO, SUBJECT, тело письма. Типичная ошибка: в FROM указан адрес на домене, не совпадающем с доменом отправляющего сервера — SPF/DKIM не проходят, письма в спаме.
Как проверить работоспособность почтовых уведомлений?
Выполните тест через Настройки → Диагностика → Тест почты. Если письмо не приходит, проверьте:
- Логи SMTP-сервера (SMTP — протокол передачи почты)
- Ошибки в
/bitrix/modules/main/lib/mail/
- Настройки агентов: должны выполняться по cron, а не на хите
Если агенты не запущены, письма зависают в очереди отправки. Для критичных уведомлений (заказ, регистрация) включаем немедленную отправку.
Настройка SMTP
Раздел Настройки → Настройки продукта → Почта → Почтовый агент. Указываем:
- SMTP-хост (например,
smtp.yandex.ru или корпоративный сервер)
- Порт: 587 (STARTTLS) или 465 (SSL)
- Логин и пароль почтового аккаунта
- Тип шифрования
После настройки обязательно тест. Если письмо не уходит, смотрим логи SMTP-сервера и проверяем, не блокирует ли провайдер порты.
Создание пользовательских почтовых событий
Для кастомных уведомлений (например, менеджер назначен на сделку) создаём тип события через административную панель или программно через CEventType::Add(). Затем создаём шаблон и вызываем отправку из кода:
CEvent::Send('MY_CUSTOM_EVENT', SITE_ID, [
'NAME' => $name,
'EMAIL' => $email,
'MESSAGE' => $text,
]);
Очередь отправки и задержки
По умолчанию письма отправляются через очередь с помощью агента CAgent::AddAgent(). Если агенты не настроены на cron, очередь может накапливаться, и письма приходят с задержкой до нескольких часов. Для важных событий включаем немедленную отправку в настройках почты. Мы рекомендуем настроить агенты на cron — это гарантирует отправку в течение минуты.
Какие типовые ошибки возникают при настройке почты?
Ошибка конфигурации SPF/DKIM — самая частая: 8 из 10 проектов с проблемами доставки имеют неверные DNS-записи. Вторая по частоте — превышение лимитов SMTP-сервера (например, Яндекс ограничивает 500 писем в день для бесплатных аккаунтов). Используем корпоративные тарифы или транзакционные сервисы. Третья — неправильные настройки очереди: агенты не выполняются, письма копятся.
Что входит в настройку почтовых событий под ключ?
При заказе услуги мы предоставляем:
- Аудит текущей почтовой конфигурации и событий
- Настройка SMTP с SPF/DKIM-записями
- Создание и донастройка всех шаблонов (стандартных и кастомных)
- Тестирование доставки на всех популярных почтовых клиентах
- Документация по настройкам и восстановлению
- Обучение администратора работе с почтовыми событиями
- Гарантия доставки писем (при соблюдении наших рекомендаций)
Опыт наших специалистов — более 5 лет, выполнено свыше 50 проектов по настройке почты Битрикс. После настройки клиенты отмечают снижение жалоб на неполучение писем на 80%.
Сроки
| Задача |
Сроки |
| Настройка SMTP + проверка существующих событий |
2–4 часа |
| Аудит и настройка всех событий магазина |
4–8 часов |
| Создание кастомных событий с шаблонами |
1–3 дня |
| Типичная проблема |
Решение |
| Письма не доходят при SPF/DKIM |
Проверить DNS-записи, добавить механизм DMARC |
| Задержки в очереди |
Настроить агенты на cron, включить немедленную отправку для критичных событий |
| Лимиты почтового сервера |
Перейти на транзакционный сервис или корпоративный тариф |
Свяжитесь с нами для бесплатной консультации по настройке почты. Закажите аудит почтовой системы — проверим все события и шаблоны, дадим рекомендации.
Почему вёрстка сайтов на 1С-Битрикс требует профессионализма?
Открываете template.php у предыдущего подрядчика — а там SQL-запросы, бизнес-логика и inline-стили в одном файле. На каждом втором проекте, который берём на поддержку, код шаблонов выглядит как свалка: кэш не работает, добавить новую фичу — переписывай всё. Средняя стоимость исправления такой вёрстки сайтов — 15 000–30 000 рублей только на отладку, а потерянная выручка из-за сломанной корзины в пик сезона может уходить в миллионы. Наша команда с 10-летним опытом строго разделяет: логика — в result_modifier.php или component_epilog.php, представление — в template.php. Никакого CIBlockElement::GetList в шаблоне. Это сокращает время правок на 30–40% и исключает типовые ошибки, которые ломают кэш. Аналогичную проблему исправляли клиенту, который месяц не мог обновить блок «Акции» — после настройки тегированного кэша правки вставали за минуту, а не за день.
Как правильно организовать шаблоны компонентов?
Кастомный шаблон — это не один файл, а структура из пяти-шести файлов:
-
template.php — только HTML и вывод $arResult
-
result_modifier.php — подготовка данных, дополнительные выборки
-
component_epilog.php — код после кэширования (счётчики, динамика)
-
style.css и script.js — подключаются через Asset::getInstance()->addCss() и addJs() (не через <link> — иначе ломается объединение)
-
.parameters.php — параметры визуального редактора
Пример структуры для каталога:
local/templates/your_template/components/bitrix/catalog.section/.default/
├── template.php
├── result_modifier.php
├── component_epilog.php
├── style.css
├── script.js
└── .parameters.php
Типовые шаблоны, которые верстаем под ключ:
| Компонент |
Что делаем |
catalog.section и catalog.element |
Переключение вида (плитка/список/таблица), lazy load для изображений, srcset для ретины |
sale.basket.basket |
AJAX-обновление без перезагрузки, мини-корзина через sale.basket.basket.line |
menu |
Мегаменю с кэшированием по разделам, отложенная загрузка подменю |
search.title |
Автоподсказки с дебаунсом 300 мс, превью товаров в дропдауне |
breadcrumb |
Микроразметка BreadcrumbList по Schema.org |
Кэширование: почему оно ломается и как чиним?
Компонентное кэширование в Битрикс ломается одной ошибкой: вывели имя пользователя внутри кэшированного каталога — все видят одно имя. Решение — component_epilog.php для динамических вставок.
Tagged cache ($this->setResultCacheKeys, CIBlock::clearIblockTagCache) настраиваем обязательно. Изменили товар — очищается кэш только этого товара, а не всего раздела. На проекте с 50 000 товаров это даёт прирост скорости на 40% по сравнению с полным сбросом.
Реальный кейс. Клиент жаловался — на странице каталога у всех одна корзина. Оказалось, предыдущий разработчик вывел $_SESSION['BASKET'] внутри template.php компонента catalog.section. Компонент кэшировался на час — корзина застыла. Перенесли вывод в component_epilog.php, настроили тегированный кэш на sale.basket.basket.line. Страница не потеряла в скорости, корзина стала актуальной. Ущерб от неработающей корзины в пик сезона мог составлять миллионы, а цена исправления — в пределах 15 000 рублей. Другой клиент потерял 200 000 рублей за неделю из-за некорректного кэша формы заказа — мы вернули работоспособность за два дня.
Официальная документация Битрикс рекомендует использовать component_epilog.php для динамических вставок — подробнее в руководстве.
CSS-подходы: BEM, Tailwind или гибрид?
Для больших проектов (30+ шаблонов) используем BEM — .product-card__price, .product-card--featured. Стили изолированы, конфликтов нет. Подробнее о BEM. В Битрикс обёртки с классами bx-component не трогаем — оборачиваем свой BEM-блок внутри.
Для типовых задач (лендинги, админки) берём Tailwind 3+ с PurgeCSS — итоговый CSS 10–30 КБ вместо сотен. Дизайн-токены в tailwind.config.js фиксируют цвета, шрифты, отступы в одном месте.
На большинстве проектов применяем гибрид: BEM для структурных компонентов (каталог, карточка, чекаут), Tailwind для утилитарных вещей (отступы, flex-раскладки). Границу оговариваем с командой заранее.
Как мы достигаем Core Web Vitals?
Critical CSS — выделяем стили первого экрана через пакет critical, инлайним в <head>. Остальное грузится асинхронно через media="print" onload="this.media='all'". LCP на мобильных сокращается на 1–1.5 секунды.
Изображения — главный тормоз. Используем <picture> с WebP и JPEG-фолбэком. loading="lazy" для всего ниже первого экрана. width и height явно прописаны — CLS = 0. Обработчик в urlrewrite.php генерирует WebP на лету.
Минификация и сжатие. CSS и JS через Vite или встроенное объединение Битрикс. Brotli на nginx (brotli_comp_level 6) — на 15–20% эффективнее gzip. Кэширование статики: expires 1y + версионирование через query string.
Хотите получить подобные показатели? Свяжитесь с нами — сделаем аудит вашего проекта и предложим конкретные шаги.
Что входит в услугу вёрстки сайтов на 1С-Битрикс?
После заказа вёрстки шаблона или адаптации готового решения передаём:
- Исходники шаблонов компонентов с разделением на
template.php, result_modifier.php, epilog
- CSS и JS, подключённые через Asset — без инлайн-стилей
- Настроенное кэширование с тегами
- Документацию по структуре и параметрам
- Доступ к Git-репозиторию с историей изменений
- Обучение вашего разработчика: как править шаблон без потери обновляемости
Гарантируем соответствие Core Web Vitals и кроссбраузерность. Закрепляем инженера с опытом 10+ лет — получите консультацию по вашему проекту до начала работ.
Процесс работы:
- Анализ макетов и текущего проекта — выявляем компоненты для переработки
- Проектирование структуры — разбиваем страницу на BEM-блоки
- Реализация — верстаем шаблоны по схеме: template, result_modifier, epilog, CSS, JS
- Тестирование — проверяем кэш, адаптивность, Core Web Vitals, кроссбраузерность
- Деплой — стейджинг, приёмка, продакшен
На каждом этапе вы получаете промежуточный результат и можете внести правки. Свяжитесь с нами — оценим проект за 1–2 дня после получения макетов.
Сроки
| Объём работ |
Срок |
| Лендинг (5–7 экранов) |
3–5 дней |
| Корпоративный сайт (15–20 уникальных страниц) |
2–4 недели |
| Интернет-магазин (30+ шаблонов компонентов) |
4–8 недель |
| Кастомизация готового решения Маркетплейса |
1–3 недели |
| Редизайн существующего проекта |
3–6 недель |
После анализа даём разбивку по компонентам — что переиспользуется, что верстается с нуля. Закажите предварительную консультацию — посчитаем сроки и бюджет индивидуально.