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 класса содержит сообщение об ошибке.
Примеры использования
<? 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"
Екатерина Обросова
|
Функция отправляет письма по адресам указанным в таблице b_posting_email с соотвествующим идентификатором выпуска. При этом обновляя статусы:
Y - еще не отправлялось N - отправлено Е - с ошибками |
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.