1C-Bitrix ("Bitrix24 Sites" is separate, this article is about the on-premise/self-hosted "1C-Bitrix: Site Management" with the Online Store module) sends mail via PHP mail() unless you intervene. Unlike Shopify or CS-Cart, the intervention is not a single toggle — you need to install an SMTP module and configure it per mail event type.
Order notifications in Bitrix are events (SALE_NEW_ORDER,SALE_STATUS_CHANGED, SALE_ORDER_PAID,SALE_ORDER_CANCEL) bound to mail templates in Settings → System → Mail and SMS → Mail templates. Each template is customisable but each can also be silently broken by a theme update.
Install Bitrix.SMTP or Mail.ru's official Bitrix connector. Point at Unisender, SendPulse or Mail.ru for Business. Publish SPF/DKIM/DMARC. Audit every order-event template individually — do not assume one test covers all.
Bitrix mail events for stores
SALE_NEW_ORDER— fires on checkout completion. Template: "Новый заказ" / "New order".SALE_NEW_ORDER_USER— the copy sent to the customer. Separate template, sometimes forgotten.SALE_STATUS_CHANGED— fires for every status transition. One template, variables for the new status.SALE_ORDER_PAID— post-payment receipt. Often missed in tests because payment is mocked in staging.SALE_ORDER_CANCEL— cancellation notice. Low volume but high emotional weight.
Install a real SMTP module
Bitrix Marketplace has several SMTP modules. The ones that work reliably:
- bitrix.mail (official): ships with 1C-Bitrix editions from version 20+. Basic SMTP only.
- Pnr.SMTPmail: community module, handles per-event routing.
- Unisender API integration: uses the Unisender transactional API rather than SMTP. Better error surface.
- Mail.ru for Business / Yandex 360 connectors: for stores where your whole workspace already lives there.
Configuration example (bitrix.mail + Unisender)
# /bitrix/.settings.php or admin UI
return [
'email' => [
'value' => [
'smtp' => [
'host' => 'smtp.unisender.com',
'port' => 587,
'protocol' => 'tls',
'login' => 'your_login',
'password' => getenv('UNISENDER_SMTP_PASSWORD'),
],
'from' => 'orders@yourstore.ru',
'from_name' => 'Your Store',
],
],
];Bitrix places .settings.php under version control in many deployment setups. Pull secrets from environment variables or a secrets service. If the password ever was in git, rotate it and force-push-overwrite is not enough — assume leaked.
DNS for .ru stores
; yourstore.ru apex, Unisender as relay
yourstore.ru. TXT "v=spf1 include:unisender.com -all"
us._domainkey.yourstore.ru CNAME us._domainkey.unisender.com.
_dmarc.yourstore.ru TXT "v=DMARC1; p=none; rua=mailto:dmarc@yourstore.ru; adkim=r; aspf=r"Register the domain with Mail.ru Postmaster and Yandex Postoffice. Both require a verification TXT that you publish once, then ingest DMARC reports to give you visibility you do not otherwise have.
Template review for Bitrix stores
- Settings → System → Mail and SMS → Mail templates. Open every
SALE_*template. - For each: verify UTF-8 encoding, check the From address is your domain (not
#DEFAULT_EMAIL_FROM#if default is wrong), verify plain-text body is present. - Avoid inline style overrides that bloat the message over 100 KB. Bitrix default templates are fine; customisations often break.
- Remove marketing blocks (upsells, coupons, reviews CTA) from transactional templates. Put them in a separate post-purchase flow.
Test every event type
Bitrix's admin lets you trigger test emails per template but with synthetic data. That is useful for layout. For real deliverability, walk through an actual order:
- Place a test order as a customer against your seed mailbox.
- Verify new-order email to admin and to customer arrived.
- Change status in admin. Verify status-change email.
- Mark as paid (manual, or via the payment processor sandbox). Verify paid receipt.
- Cancel. Verify cancellation email.
- Run the seed list across Mail.ru, Yandex, Gmail, Outlook for each step.
Our seed set covers Mail.ru, Yandex, Rambler, Gmail and Outlook. Catch misaligned DKIM and Promotions-tab drift before the next release.