ГЛАВНАЯ / Информация / Техподдержка. Подмена email по ситуации

Техподдержка. Подмена email по ситуации

Бывают случаи когда надо, в зависимости от ситуации, подменить входящий email.


Есть задача - подменить дефолтный адрес в настройках главного модуля по ситуации.

Например, при формирование тиккетов по отделам - у каждого отдела свой email без дополнительных настроек и изменении модуля.

Для этого мы определим входящий email отдела (заведомо известный) и перед формированием выставим отдел

Добавляем в init.php код, предвариельно добавим вариант пользовательское свойство для хранения в тиккете UF_VARIANT

AddEventHandler("support", "OnBeforeTicketAdd", "TicketsInitHandlerBefore");
function TicketsInitHandlerBefore($arFields) {
	if(strpos($arFields['EXTERNAL_FIELD_1'], "отдел@домен") !== false) {
		$arFields['UF_VARIANT'] = 'отдел';
	}
	if(strpos($arFields['EXTERNAL_FIELD_1'], "отдел1@домен") !== false) {
		$arFields['UF_VARIANT'] = 'отдел1';
	}
	return $arFields;
}

Дальше ловим событие при отправке администраторам техподдержки и клиенту

AddEventHandler("support", "OnBeforeSendMailToAuthor", array("MyClassSend", "OnBeforeSendMailToAuthorHandler")); //событие перед отправкой клиенту
AddEventHandler("support", "OnBeforeSendMailToSupport", array("MyClassSendSupport", "OnBeforeSendMailToSupportHandler")); //событие перед отправкой админам техподдержки
class MyClassSend
{
    function OnBeforeSendMailToAuthorHandler($arFields, $is_new)
    {
	$arFilter = array();
	$arFilter['ID'] = $arFields['ID'];
	$rs = CTicket::GetList($by = "s_id", $order = "asc", $arFilter, $isFiltered, "N", "N", "N", false, Array("SELECT" => array("UF_*" )));
	while($arTicket = $rs->GetNext())
	{
		$type = $arTicket['UF_VARIANT']; // выбираем отдел
	}
	if($type) {
		if($type == 'отдел') {
			$arFields['TYPE'] = 'отдел@домен';
		}
		if($type == 'отдел1') {
			$arFields['TYPE'] = 'отдел1@домен';
		}
	}
        return $arFields;
    }
}

В шаблонах писем для техподдержки меняем #DEFAULT_EMAIL_FROM# на #TYPE#

.

Таким образом мы подмениваем адрес, особо не прибегая к большим изменениям кода, всего-лишь добавив в init.php свою логику обработки

info@bx-web.com | +380688365560

© BX-WEB.com 2017. Все права защищены

Золотой партнер участник Программы мониторинга качества внедрений! Компетенция: Композитный сайт

ПЛИНИРОВЩИК ПРОЕКТА

Для получения примерной цены заполните форму и мы ответим вам в краткие сроки (точная цена только после получения детальной инфорации по проекту и разговором с Вами).


ВАШИ ДАННЫЕ
ДЕТАЛИ ПРОЕКТА
ДИЗАЙН, ВЕРСТКА и ИНТЕГРАЦИЯ

Политика конфиденциальности:  Мы обязуемся использовать Ваши данные только в рамках нашего проекта и не передавать их сторонним людям.