1С-бітрікс розробникам - як видалити з розсилки невалидность адреси email

Отже, що нам потрібно?

1. Додаємо в систему вищевказаний поштову скриньку.
2. Створюємо нове правило. Тут особливу увагу звертаємо на поле "Умова на PHP скрипт", сюди будемо вставляти перевірку і обробку:

1С-бітрікс розробникам - як видалити з розсилки невалидность адреси email

Службове лист сервера має вигляд:


This is a MIME-encapsulated message.

--B2FB437C30.1218522354 / myserver.com
Content-Description: Notification
Content-Type: text / plain

This is the Postfix program at host myserver.com.

I'm sorry to have to inform you that your message could not
be delivered to one or more recipients. It's attached below.

For further assistance, please send mail to

If you do so, please include this problem report. You can
delete your own text from the attached returned message.

The Postfix program

: Host email-com.mr.outblaze.com # 91; 208.36.123.16 # 93; said: 550
: No thank you rejected: Account Unavailable: Possible
Forgery (in reply to RCPT TO command)

На жаль, АПИ модуля пошти слабо освітлений в документації, тому довелося дізнатися список полів масиву $ arMessageFields по вихідного коду (файл bitrix / modules / mail / classes / general / mail.php).

В результаті код для умови може бути приблизно такою:

Тепер якщо вручну або автоматично забирати пошту з цього ящика після розсилки, недобросовісні передплатники будуть видалені і в подальшому не будуть бестолку навантажувати сервер.
Можна замість (або разом) видалення з розсилки видаляти або деактивувати користувача з таким email. Все залежить від конкретного проекту.

Поточне виклад скоріше не howto, а proof of concept того, як вирішується ця проблема.

Спасибі вам! =)
Я думаю - можна сміливо додавати такий функціонал в можливості Bitrix (треба тільки зібрати основні відповіді серверів).

Ну і раз пішла така п'янка.
Можна вставляти код не у вкладці "Умови" - а у вкладці "Дії", поле "Дія на PHP скрипт" - в такому разі не треба нічого повертати.

Денис, ось поки намагався зрозуміти чому Ваш код не працював - намагався вивести в файл весь масив $ arMessageFields

(Щоб розібратися чому не працює) - але print_r чому то видавав 1 (одиницю) замість очікуваного масиву. Чому?
(Через це довелося розбиратися з файлом файл bitrix / modules / mail / classes / general / mail.php і вишукувати потрібний ключ)

8-800-250-1860 Контакти Карта сайту
Дизайн сайту -