Версия 1.9 Недочет при массовой рассылке.
При массовой рассылке Личных сообщений отправляется всего около 130 сообщений.
Скорее всего связано с set_time_limit();
Проверяю на DENWER`е.
В настройках админки указано Способ отправки: Функция mail в PHP
Увеличил до 120 (set_time_limit(120);). Отправилось 495 сообщений.
Установил set_time_limit(0); (т.е. снял ограничение).
Для рассылки сообщений 2049 пользователям потребовалось 9 мин. 41 сек.
Вряд ли какой-нибудь хостер разрешит устанавливать set_time_limit(0); или например, ini_set("max_execution_time", "600");
Как исправить?
Как исправить, что бы сообщения могли получить ВСЕ пользователи?
тем более вы сами ответили на свой вопрос
Установил set_time_limit(0); (т.е. снял ограничение).
а что вы ожидали? у вас есть решение на уровне CMS? поделитесь.не ожидал такого ответа
какое? я что-то пропустил?)измените в архиве с обновлением данное изменение
public function sendNotificationByEmail
Лично я, когда занимался рассылкой спама по ящикам (сейчас забросил), использовал программу, в которой можно было настроить количество писем, отправляемых за определенный интервал времени.
Т.е. если в инстанте есть функция, в которой задан интервал, то её можно убрать (понимаю, что тогда это может привести к определенным последствиям со стороны почтовых серверов). Это пока то, что в голову пришло.
foreach ($userlist as $key=>$usr){ $msg_id = cmsUser::sendMessage(USER_MASSMAIL, $usr['id'], $message); $model->sendNotificationByEmail($usr['id'], $from_id, $msg_id); }
Fuze решил, что это не проблема InstantCMS, а проблема юзера, который пользует "не правильного" хостера.
"Костыль", в виде set_time_limit(0), можно использовать только при тестах на Денвере, но никак не на работающем проекте.
На данный момент у меня решения нет. В ближайшее время займусь этой проблемой.у вас есть решение на уровне CMS? поделитесь.
Не сомневайтесь Fuze, поделюсь обязательно, т.к. в настоящее время пользоваться массовой рассылкой, тем у кого больше 130 юзеров, не предоставляется возможным.
Временное решение, для тех у кого больше 130 пользователей.
Массовая рассылка сообщений без отправки оповещения на email о новом сообщении:
В файле ../components/users/frontend.php найдите код
foreach ($userlist as $key=>$usr){ $msg_id = cmsUser::sendMessage(USER_MASSMAIL, $usr['id'], $message); $model->sendNotificationByEmail($usr['id'], $from_id, $msg_id); }
foreach ($userlist as $key=>$usr){ $msg_id = cmsUser::sendMessage(USER_MASSMAIL, $usr['id'], $message); //$model->sendNotificationByEmail($usr['id'], $from_id, $msg_id); }
тем у кого больше 130 юзеров, не предоставляется возможным.
меня около 2500 чел, как же проверить было отправлено сообщение на мыло или нет?