Bitrix 24 автоматическое создание задачи из электронной почты
 
Bitrix 24 автоматическое создание задачи из электронной почты
16.03.2015 09:42:00
Разработка
1666
Условия задачи: Есть служебный ящик. Создаем письмо на два адреса – служебный ящик и (копия) на ящик сотрудника портала. Можно наоборот: письмо - сотруднику, копия - на служебный ящик.
Условия задачи:

Есть служебный ящик.

Создаем письмо на два адреса – служебный ящик и (копия) на ящик сотрудника портала.

Можно наоборот: письмо - сотруднику, копия - на служебный ящик.

Задача: при получении письма создать задачу сотруднику, указанному в адресе "получатель".

Постановщик - сотрудник, указанный в адресе "отправитель"

Реализация:

1) создаем почтовый ящик на внешнем почтовом сервере.

2) создаем служебный ящик в портале:

"Рабочий стол - Сервисы - Почта - Почтовые ящики"

step1.JPG

в ячейку "название" пишем произвольное название служебного ящика.

в графе "тип" указываем "внешний POP3 сервер"

в графе "почтовый сервер/порт" указываем адрес почтового сервера. В нашем случае - pop.gmail.com

ставим флажок "использовать безопасное соединение".

Порт - 995 (установится автоматически)

В графе "имя входа" - имя реального аккаунта, соответствующего почтовому ящику на внешнем сервере.

В графе "пароль" - пароль для внешнего п/я

В графе "проверять с периодом" ставим периодичность (в минутах), с которой содержимое ящика будет проверяться автоматически, или 0 - для ручной проверки

3) Создаем правило обработки:

"Рабочий стол - Сервисы - Почта - Правила - Добавить правило - ручная настройка"

На вкладке "параметры" указываем:

имя ящика (которое было в графе "название" при создании ящика)

название и описание правила

"применять при событиях" - ставим флажок "При получении почты"

step2.JPG

На вкладке "действия" в окне "Действия на PHP скрипте" вписываем следующий код:

if (CModule::IncludeModule("tasks")) {       
$from = CMailUtil::ExtractMailAddress($arMessageFields['FIELD_FROM']);    
$rsUser = CUser::GetList(($by="ID"), ($order="desc"), array("email"=>$from));    
if ($oUser = $rsUser->Fetch())       
$id_created = $oUser["ID"];        
$arr_to = CMailUtil::ExtractAllMailAddresses($arMessageFields["FIELD_TO"].",".$arMessageFields["FIELD_CC"].
",".$arMessageFields["FIELD_BCC"]);    
foreach ($arr_to as $to)    {
    if (empty($to))       continue;    
    $rsUser = CUser::GetList(($by="ID"), ($order="desc"), array("email"=>$to));    
    if ($oUser = $rsUser->Fetch())       
      $arr_responsible[] = $oUser["ID"];    
}                 
$arFields = Array(  
"TITLE" => $arMessageFields['SUBJECT'],
"DESCRIPTION" => TxtToHTML($arMessageFields['BODY']),
"RESPONSIBLE_ID" => $arr_responsible[0],
"STATUS"=>2,
"CREATED_BY" => $id_created  );        
$obTask = new CTasks;    
 $ID = $obTask->Add($arFields);    
$arr_accomp = array_splice($arr_responsible, 1, (count($arr_responsible)-1));    
CTasks::AddAccomplices($ID, $arr_accomp);        
}
Доступны 2 версии решения

Платная версия с расширенными функциональными возможностями и регулярными обновлениями. Решение доступно на Маркетплейс.

Бесплатная, облегчённая, версия с ограниченным функционалом. Решение доступно на Маркетплейс.

Загрузка...