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

SendMessage

Описание и параметры

mixed
CPosting::SendMessage(
	int ID,
	int timeout = 0,
	int maxcount = 0,<
	bool check_charset = false,
);

Нестатический метод отправляет выпуск в почтовую рассылку по адресам, указанным в таблице b_posting_email с соответствующим идентификатором выпуска. При этом обновляя статусы:

  • Y - еще не отправлялось
  • N - отправлено
  • Е - с ошибками
Выпуски со статусом "Успешно отправлен" повторно не отправляются. Если у выпуска установлен статус "Частично отправлен", то выпуск отправляется по оставшимся адресам.

Сначала выполняется попытка получения блокировки выпуска (см. CPosting::Lock). Если блокировку получить не удалось, то отправка считается частичной и возвращается "CONTINUE". Затем формируется тело письма для отправки и в цикле по адресам подписчиков осуществляется отправка выпуска с использованием функции bxmail.

В режиме отправки "Персонально каждому получателю" перед вызовом bxmail вызываются обработчики события BeforePostingSendMail.

В цикле отправки в очереди адресов делаются отметки об успешной отправке или ошибке.

С выпуска снимается блокировка(см. CPosting::UnLock).

Параметры

ПараметрОписание C версии
ID Идентификатор выпуска.
timeout Максимальное время отправки в секундах. При превышении этого времени прерывается работа и устанавливается статус выпуска "Частично отправлен". Параметр имеет значение только при методе отправки "Персонально каждому получателю". Если timeout=0, то отправка производится за один шаг. 3.2.0
maxcount Максимальное количество писем для отправки. При превышении этого количества прерывается работа и устанавливается статус выпуска "Частично отправлен". Параметр имеет значение только при методе отправки "Персонально каждому получателю". Если maxcount=0, то отправка производится за один шаг.4.0.5
check_charset Сопоставлять текущую кодировку (константа LANG_CHARSET) с кодировкой в которой составлен выпуск или нет. Если кодировки не совпадают, то вернется "CONTINUE". Используется при отправке выпусков с помощью агентов. Сравнение выполняется без учета регистра кодировок. 8.0.1

Возвращаемые значения

Функция возвращает true при успешной отправке, false при неуспешной, "CONTINUE" при частичной отправке. При неуспешной отправке переменная LAST_ERROR класса содержит сообщение об ошибке.

Смотрите также

  • bxmail

  • Примеры использования

    <?
    if($action=="send" && $ID>0):
    	if(($res = $cPosting->SendMessage($ID, COption::GetOptionString("subscribe", "posting_interval"))) !== false):
    		if($res === "CONTINUE"):
    ?>
    <script language="JavaScript" type="text/javascript">
    <!--
    function DoNext(){window.location="<?echo $APPLICATION->GetCurPage()."?ID=".$ID."&action=send&lang=".LANG."&rnd=".rand();?>";}
    setTimeout('DoNext()', 2500);
    //-->
    </script>
    <?
    		else:
    			$strOk = "Sent successfully.";
    		endif; //$res === "CONTINUE"
    	endif; //$cPosting->SendMessage
    	$strError .= $cPosting->LAST_ERROR;
    endif; //$action=="send"


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