public static function Send($event, $lid, $arFields, $Duplicate = "Y", $message_id = "", $files = array()) { foreach (GetModuleEvents("main", "OnBeforeEventAdd", true) as $arEvent) { if (ExecuteModuleEventEx($arEvent, array(&$event, &$lid, &$arFields, &$message_id, &$files)) === false) { return false; } } $arLocalFields = array("EVENT_NAME" => $event, "C_FIELDS" => $arFields, "LID" => is_array($lid) ? implode(",", $lid) : $lid, "DUPLICATE" => $Duplicate != "N" ? "Y" : "N", "FILE" => $files); if (intval($message_id) > 0) { $arLocalFields["MESSAGE_ID"] = intval($message_id); } $result = Mail\Event::send($arLocalFields); $id = false; if ($result->isSuccess()) { $id = $result->getId(); } return $id; }
/** * @param string $email * @param array $mailingList * @param string $siteId * @return void * //send email with url to confirmation of subscription */ public static function sendEventConfirm($email, array $mailingIdList, $siteId) { $mailingNameList = array(); $mailingDb = MailingTable::getList(array('select' => array('NAME'), 'filter' => array('ID' => $mailingIdList))); while ($mailing = $mailingDb->fetch()) { $mailingNameList[] = $mailing['NAME']; } $subscription = array('EMAIL' => $email, 'SITE_ID' => $siteId, 'MAILING_LIST' => $mailingIdList); $confirmUrl = static::getLinkSub($subscription); $date = new \Bitrix\Main\Type\DateTime(); $eventSendFields = array("EVENT_NAME" => "SENDER_SUBSCRIBE_CONFIRM", "C_FIELDS" => array("EMAIL" => $email, "DATE" => $date->toString(), "CONFIRM_URL" => $confirmUrl, "MAILING_LIST" => implode("\r\n", $mailingNameList)), "LID" => is_array($siteId) ? implode(",", $siteId) : $siteId); \Bitrix\Main\Mail\Event::send($eventSendFields); }