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

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"


    Пользовательские комментарии

    Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

    Для этого нужно всего лишь авторизоваться на сайте

    Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

    Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
    1
    Екатерина Обросова
    Функция отправляет письма по адресам указанным в таблице b_posting_email с соотвествующим идентификатором выпуска. При этом обновляя статусы:
    Y - еще не отправлялось
    N - отправлено
    Е - с ошибками
    © «Битрикс», 2001-2024, «1С-Битрикс», 2024
    Наверх