Документация для разработчиков
Темная тема

Как отправить e-mail клиенту от имени сотрудника с указанием ящика сотрудника

Пример получает e-mail ответственного за контакт и создаёт активити отправки письма с моментальной отправкой.

Внимание! Для использования примера настройте работу класса CRest и подключите файл crest.php в файлах, где используется данный класс. Подробнее.

<?
$contactID = 1;
$resultContact = CRest::call(
	'crm.contact.get',
	[
		'id' => $contactID
	]
);
$resultActivity = [];
if (!empty($resultContact['result']['ASSIGNED_BY_ID']) && !empty($resultContact['result']['EMAIL']))
{
	$resultUser = CRest::call(
		'user.get',
		[
			'filter' => [
				'ID' => $resultContact['result']['ASSIGNED_BY_ID']
			]
		]
	);

	if ($resultUser['result'])
	{
		$contactEmail = reset($resultContact['result']['EMAIL']);
		$staff = reset($resultUser['result']);
		if (!empty($contactEmail['VALUE']) && !empty($staff['EMAIL']))
		{
			$resultActivity = CRest::call(
				'crm.activity.add',
				[
					'fields' => [
						"SUBJECT" => "subject email now",
						"DESCRIPTION" => "body email now",
						"DESCRIPTION_TYPE" => 3,//text,html,bbCode type id in: CRest::call('crm.enum.contenttype');
						"COMPLETED" => "Y",//send now
						"DIRECTION" => 2,// CRest::call('crm.enum.activitydirection');
						"OWNER_ID" => $contactID,
						"OWNER_TYPE_ID" => 3, // CRest::call('crm.enum.ownertype');
						"TYPE_ID" => 4, // CRest::call('crm.enum.activitytype');
						"COMMUNICATIONS" => [
							[
								'VALUE' => $contactEmail['VALUE'],
								'ENTITY_ID' => $contactID,
								'ENTITY_TYPE_ID' => 3// CRest::call('crm.enum.ownertype');
							]
						],
						"START_TIME" => date("Y-m-d H:i:s", time()),
						"END_TIME" => date("Y-m-d H:i:s", time() + 3600),
						"RESPONSIBLE_ID" => $staff['ID'],
						'SETTINGS' => [
							'MESSAGE_FROM' => implode(
								' ',
								[$staff['NAME'], $staff['LAST_NAME'], '<' . $staff['EMAIL'] . '>']
							),

						],
					]
				]
			);
		}
	}
}
if (!empty($resultActivity['result']))
{
	echo json_encode(['message' => 'Activity add']);
}
elseif (!empty($resultActivity['error_description']))
{
	echo json_encode(['message' => 'Activity not added: ' . $resultActivity['error_description']]);
}
else
{
	echo json_encode(['message' => 'Activity not added']);
}
?>


© «Битрикс», 2001-2024, «1С-Битрикс», 2024