• Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/postingmanager.php
  • Класс: BitrixSenderPostingManager
  • Вызов: PostingManager::sendToAddress
static function sendToAddress($mailingChainId, $address)
{
	$recipientEmail = $address;
	$emailParts     = explode('@', $recipientEmail);
	$recipientName  = $emailParts[0];

	global $USER;

	$mailingChain = MailingChainTable::getRowById(['ID' => $mailingChainId]);
	$fields       = [
		'NAME'              => $recipientName,
		'EMAIL_TO'          => $address,
		'USER_ID'           => $USER->GetID(),
		'SENDER_CHAIN_ID'   => $mailingChain["ID"],
		'SENDER_CHAIN_CODE' => 'sender_chain_item_'.$mailingChain["ID"]
	];

	$letter  = new EntityLetter($mailingChainId);
	$message = $letter->getMessage();

	$siteId = MailingTable::getMailingSiteId($mailingChain['MAILING_ID']);

	$message->getReadTracker()
			->setModuleId('sender')
			->setFields(['RECIPIENT_ID' => 0])
			->setSiteId($siteId);

	$message->getClickTracker()
			->setModuleId('sender')
			->setFields(['RECIPIENT_ID' => 0])
			->setUriParameters(['bx_sender_conversion_id' => 0])
			->setSiteId($siteId);

	$message->getUnsubTracker()
			->setModuleId('sender')
			->setFields(
				[
					'MAILING_ID' => !empty($mailingChain) ? $mailingChain['MAILING_ID'] : 0,
					'EMAIL'      => $address,
					'TEST'       => 'Y'
				]
			)
			->setSiteId($siteId);

	$message->getUnsubTracker()
			->setHandlerUri(Option::get('sender', 'unsub_link'));

	$message->setFields($fields);
	$result = $message->send();

	return $result ? static::SEND_RESULT_SENT : static::SEND_RESULT_ERROR;
}