TransportMail::sendConsent

  1. Bitrix24 API (v. 23.675.0)
  2. sender
  3. TransportMail
  4. sendConsent
  • Модуль: sender
  • Путь к файлу: ~/bitrix/modules/sender/lib/integration/sender/mail/transportmail.php
  • Класс: Bitrix\Sender\Integration\Sender\Mail\TransportMail
  • Вызов: TransportMail::sendConsent
public function sendConsent(Message\Adapter $message, Consent\AbstractConsentMessageBuilder $builder)
{
	$agreement = $this->getAgreement((int)$message->getConfiguration()->get('APPROVE_CONFIRMATION_CONSENT'));
	
	if (!$agreement)
	{
		return false;
	}

	$builder->set('POSTING_ID', $message->getId());
	$builder->set('CONSENT_ID', $agreement->getId());
	$buildedMessage = $builder->buildMessage();

	$contentBody = Security\Sanitizer::fixReplacedStyles($agreement->getText());
	$contentBody = Security\Sanitizer::sanitizeHtml($contentBody, $agreement->getText());

	$template = \Bitrix\Sender\Preset\Templates\Consent::getTemplateHtml();
	$body = \Bitrix\Sender\Preset\Templates\Consent::replaceTemplateHtml($template, [
		'APPROVE_BTN_TEXT' => $agreement->getLabelText(),
		'CONSENT_BODY' => $contentBody,
		'CONSENT_FOOTER' => '',
		'APPLY_URL' => $buildedMessage['C_FIELDS']['SENDER_CONSENT_APPLY'],
		'REJECT_URL' => $buildedMessage['C_FIELDS']['SENDER_CONSENT_REJECT'],
	]);
	
	$mailMessageParams = array(
		'EVENT' => [],
		'FIELDS' => [],
		'MESSAGE' => array(
			'BODY_TYPE' => 'html',
			'EMAIL_FROM' => $this->getCleanMailAddress($message->getConfiguration()->get('EMAIL_FROM')),
			'EMAIL_TO' => $buildedMessage['C_FIELDS']['EMAIL'],
			'PRIORITY' => $message->getConfiguration()->get('PRIORITY'),
			'SUBJECT' => Loc::getMessage('SENDER_INTEGRATION_MAIL_CONSENT_SUBJECT'),
			'MESSAGE' => $body,
			'MESSAGE_PHP' => $message->getConfiguration()->get('BODY_PHP'),
		),
		'SITE' => $message->getSiteId(),
		'CHARSET' => $message->getCharset(),
	);
	$mailMessage = Mail\EventMessageCompiler::createInstance($mailMessageParams);
	$mailMessage->compile();
	
	$mailParams = array(
		'TO' => $mailMessage->getMailTo(),
		'SUBJECT' => static::replaceTemplate($mailMessage->getMailSubject()),
		'BODY' => $mailMessage->getMailBody(),
		'HEADER' => $mailMessage->getMailHeaders(),
		'CHARSET' => $mailMessage->getMailCharset(),
		'CONTENT_TYPE' => $mailMessage->getMailContentType(),
		'MESSAGE_ID' => '',
		'CONTEXT' => $this->getMailContext(),
	);
	
	return Mail\Mail::send($mailParams);
}

Добавить комментарий