- Модуль: 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);
}