intervolga / intervolga.migrato

Модуль миграции сущностей для CMS "1С-Битрикс: Управление сайтом" для разработчиков
MIT License
91 stars 23 forks source link

Неоднозначность формирования XML_ID для Почтовых шаблонов #11

Closed xaoc2007 closed 5 years ago

xaoc2007 commented 6 years ago

По документации формирование XML_ID для почтовых шаблонов идет по правилу XML_ID = md5(EMAIL_FROM+EMAIL_TO+EVENT_NAME+сайты)

Но вполне реальна ситуация, когда у 2 форм на сайте одинаковые параметры, но отличается тема и само содержание шаблона.

Вот сегодня поймал такое на одном сайте.

Предлагаю добавить в правило формирования XML_ID еще и тему из Почтового шаблона.

arkanif commented 6 years ago

То есть у вас на 1 и то же почтовое событие есть как минимум 2 почтовых шаблона с одинаковыми отправителем (допустим), привязкой к сайтам (допустим) и получателем? При испускании почтового события одному и тому же получателю уходит 2 письма, отличающихся только темой и содержимым?

xaoc2007 commented 6 years ago

Не совсем. На сайте есть два раздела с вызовами компонента main.feedback, у которых в параметрах указаны конкретные почтовые шаблоны(разные, но принадлежащие одному и тому же событию FEEDBACK_FORM) и параметр EMAIL_TO - разный.

В почтовых шаблонах же указаны параметры EMAIL_FROM = #DEFAULT_EMAIL_FROM# EMAIL_TO = #EMAIL_TO#

EVENT_NAME для обоих шаблонов = FEEDBACK_FORM Ну и привязка к сайту - сайт один.

В итоге связка "EMAIL_FROM+EMAIL_TO+EVENT_NAME+сайты" у обоих шаблонов одинакова.

Технически же это разные шаблоны и уходят они на разные email(задается в параметрах компонента main.feedback).

Конечно, может быть было бы правильнее разнести шаблоны по разным почтовым событиям, но особого смысла в этом не вижу.

arkanif commented 6 years ago

@xaoc2007, понял вас. Вы про непопулярный 5-ый аргумент функции https://dev.1c-bitrix.ru/api_help/main/reference/cevent/send.php $message_id. Действительно, правильнее разные письма делать по разным шаблонам. Мы в Интерволге так и делаем, и не пользуемся таким вот способом отправки сообщений.

Но ваш случай не получится разрешить просто добавлением темы почтового шаблона в md5 для "MIGRATO XML ID" (мы его так называем, чтобы отличить от "родного" XML ID, который много где есть) -- ведь Битрикс позволяет создавать 2 письма с одинаковой темой в пределах одного шаблона.

Если вам действительно не хватает такой возможности, вы можете кастомизировать код класса для этого случая.