ExBB Community ExBB Community
 Сайт проекта ExBB Общение объединяет!
Войдите на форум при помощиВойти через loginza
 Чат на форуме      Помощь      Поиск      Пользователи     BanList BanList


 Страниц (4): [1] 2 3 4 »   

> Описание: Массовая рассылка с админки
Defenderyk
Отправлено: 17 марта 2010 — 15:59
Post Id


Пользователь
Super Member


Покинул форум
Сообщений всего: 1027
Дата рег-ции: Февр. 2009  
Репутация: 31




Работает или нет? Пробовал несколько раз, ждет около минуты и пишет 502 ошибку
 
 
Александр Михалицын
Отправлено: 17 марта 2010 — 17:01
Post Id


Администратор
Super Member


Покинул форум
Сообщений всего: 723
Дата рег-ции: Февр. 2009  
Репутация: 42




Defenderyk,
да работает вроде, сколько юзеров на форуме у тебя зарегистрировано? Улыбка

Надо метод $fm->_SendMail фиксить, чтобы не разом все отправлял, а кусочками...
Сегодня-завтра накатаю фикс. Подмигивание
(Добавление)
Кстати, Defenderyk, попробуй-ка в fm.class.php
заменить строку @set_time_limit(360); на set_time_limit(3600); (убрал оператор @, чтобы вылетел ворнинг если запрещен сеттаймлимит, ну и время поменял. Улыбка
 
 
Defenderyk
Отправлено: 17 марта 2010 — 17:20
Post Id


Пользователь
Super Member


Покинул форум
Сообщений всего: 1027
Дата рег-ции: Февр. 2009  
Репутация: 31




3000 юзеров
вообще сама отправка работает всмысле движка, т.е если новую тему создаю, то приходит на мыло уведомление.

а вот отправка из админки не идет
 
 
Defenderyk
Отправлено: 18 марта 2010 — 07:41
Post Id


Пользователь
Super Member


Покинул форум
Сообщений всего: 1027
Дата рег-ции: Февр. 2009  
Репутация: 31




vipraskrutka, так этот скрипт еще надо встроить в форум, чтобы все ящики были)
(Добавление)

ПС. кстати почему каретка при обращении по нику в неположенном месте?
 
 
Александр Михалицын
Отправлено: 18 марта 2010 — 14:48
Post Id


Администратор
Super Member


Покинул форум
Сообщений всего: 723
Дата рег-ции: Февр. 2009  
Репутация: 42




vipraskrutka,
ой! Как сложно. Киньте мне этот скрипт прикручу к форуму лучше. Улыбка
 
 
Александр Михалицын
Отправлено: 18 марта 2010 — 15:31
Post Id


Администратор
Super Member


Покинул форум
Сообщений всего: 723
Дата рег-ции: Февр. 2009  
Репутация: 42




vipraskrutka,
я сделал фикс для FM RC 1, в файле fm.class.php (найти и заменить функцию):
CODE:
/*
_SendMail функция отправки e-mail через sendmail сервера
*/
function _SendMail($list, $user_id_offset=0) {//sys_improve (Добавил аргумент)
$headers = 'From: '.$list[0].' <'.$list[1].">\n";
$headers .= 'Reply-To: '.$list[1]."\n";
$headers .= 'Return-Path: '.$list[1]."\n";
$headers .= "MIME-Version: 1.0\nContent-type: text/plain; charset=windows-1251\nContent-Transfer-Encoding: 8bit\nDate: " . gmdate('D, d M Y H:i:s', time()) . " UT\nX-Priority: 3\nX-MSMail-Priority: Normal\nX-Mailer: PHP\n";

$skip_mails = (file_exists(FM_SKIP_MAILS)) ? file(FM_SKIP_MAILS):array();
if (count($skip_mails) !== 0) {
unset($skip_mails[0]);
$skip_mails = preg_replace("#(\r\n|\|$)#","",trim(implode("|",$skip_mails)));
} else {
$skip_mails = "@";
}

$users = $this->_Read(FM_USERS);
if (is_array($list[2])) {

@set_time_limit(360);

$before_time = time();

foreach ($list[2] as $user_id => $flag) {
$user_id = $user_id_offset + $user_id;
if (isset($users[$user_id]) && !preg_match("#(".$skip_mails.")$#is",$users[$user_id]['m'])) {
mail($users[$user_id]['m'], $list[3], $list[4], $headers);

//Если разница максимального времени выполнения скрипта и времени между началом цикл
//и временем текущей итерации цикла <= 2, то завершаем цикл и сохраняем смещение :-)
if ((360 - (time() - $before_time)) <= 2)
{
$this->_Read2Write($fp, 'data/massmail_tmpdb.php');
$this->_Write($fp, array($list, $uid_offset));
$fm->_Message($fm->LANG['AdminMassMail'],$fm->LANG['MassMailNSended'],'setmembers.php?action=massmail_offset',1);
}
}
}
} else {
if (!preg_match("#(".$skip_mails.")$#is",$list[2])) {
mail($list[2], $list[3], $list[4], $headers);
}
}
}

function _SendMail_with_offset()
{
$tmp_db = $this->_Read('data/massmail_tmpdb.php');
$this->_SendMail($tmp_db[0], $tmp_db[1]);
}


В файле setmembers.php, после:
CODE:
} elseif ($fm->input['action'] == 'massmail') {
if ($fm->_Intval('dosend') === 1) {
if ($fm->input['subject'] == '' || $fm->input['message'] == '') {
$fm->_Message($fm->LANG['AdminMassMail'],$fm->LANG['EmailNotEmpty'],'',1);
}
$allusers = $fm->_Read(FM_USERS,FALSE);
SkipMails();
array_filter($allusers,'MAP_MAIL');
unset($allusers);

$total_mails = sizeof($usersmails);
if ($total_mails > 0) {
$message = sprintf ($fm->LANG['MassMailText'],
$fm->exbb['boardname'],
$fm->exbb['boardurl'],
$fm->input['message']);
$fm->_Mail($fm->exbb['boardname'],$fm->exbb['adminemail'],$usersmails,$fm->input['subject'],$message);
$fm->_WriteLog($fm->LANG['LogMassMail'],1);
$fm->_Message($fm->LANG['AdminMassMail'],sprintf($fm->LANG['MassMailSended'],$total_mails),'setmembers.php?action=massmail',1);
} else {
$fm->_Message($fm->LANG['AdminMassMail'],$fm->LANG['EmailAdminError'],'',1);
}
} else {
include('./admin/all_header.tpl');
include('./admin/nav_bar.tpl');
include('./admin/mass_mail.tpl');
include('./admin/footer.tpl');
}

добавить:
CODE:
} elseif ($fm->input['action'] == 'massmail_offset') {
$fm->_SendMail_with_offset();


lang_admin_setmembers.php
CODE:
$this->LANG['MassMailNSended'] = 'Сообщение разослано на ряд адресов, но рассылка еще не окончена, сейчас произойдет переадресация и рассылка продолжится.';

Я не тестировал (поскольку столь крупной базы у меня нет), если кто-то может -- буду рад если вы протестируете на локалке с Денвером скрипт рассылки.

В отличие от скрипта WR, моя реализация разбивает рассылку не по заданному количеству писем, а динамически, упираясь на время выполнения скрипта.
 
 
Александр Михалицын
Отправлено: 18 марта 2010 — 15:48
Post Id


Администратор
Super Member


Покинул форум
Сообщений всего: 723
Дата рег-ции: Февр. 2009  
Репутация: 42




vipraskrutka,
так моя реализация так и делает. Разница лишь в том, что размер этой самой "пачки" определяется автоматически.)) Улыбка
 
 
Александр Михалицын
Отправлено: 18 марта 2010 — 15:55
Post Id


Администратор
Super Member


Покинул форум
Сообщений всего: 723
Дата рег-ции: Февр. 2009  
Репутация: 42




vipraskrutka,
так а смысл, он по тайм лимиту определяет сколько еще скрипту осталось работать и если времени мало осталось, завершает рассылку... Для сервера разницы никакой...
 
 
Александр Михалицын
Отправлено: 18 марта 2010 — 16:15
Post Id


Администратор
Super Member


Покинул форум
Сообщений всего: 723
Дата рег-ции: Февр. 2009  
Репутация: 42




vipraskrutka,
>Проблемы возникают у почтового сервера!
Смотря как настроен php. Либо отправка происходит средствами сендмейла либо smtp,
но тут опять же, размер "пачки" нужно еще определить. Если вы предложите оптимальный размер "пачки" я реализую такой скрипт. Улыбка
 
 
Defenderyk
Отправлено: 1 мая 2010 — 17:58
Post Id


Пользователь
Super Member


Покинул форум
Сообщений всего: 1027
Дата рег-ции: Февр. 2009  
Репутация: 31




так как обстоят дела?)
 
 
Rutir123
Отправлено: 2 мая 2010 — 20:20
Post Id



Пользователь
Newbie


Покинул форум
Сообщений всего: 32
Дата рег-ции: Февр. 2010  
Репутация: 0

[+]


помогите пожалуйста! когда нажимаю массовая рассылка в админке выдает вот таких много сообщений


CODE:
Notice: Undefined offset: 1 in /public_html/include/lib.php on line 30

(Отредактировано автором: 5 июня 2010 — 11:01)

 
 
viperrr
Отправлено: 13 июня 2010 — 11:41
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 48
Дата рег-ции: Авг. 2009  
Репутация: 5




У меня ошибка при отправке такая:

Notice: Undefined offset: 1 in /home/uno2126/public_html/forum/include/lib.php on line 50

В чем может быть проблемма ?
на форуме 300человек

(Отредактировано автором: 13 июня 2010 — 11:43)

 
 
viperrr
Отправлено: 14 июня 2010 — 14:59
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 48
Дата рег-ции: Авг. 2009  
Репутация: 5




Походу мне некто не поможет! Мда?
 
 
Defenderyk
Отправлено: 16 июня 2010 — 10:16
Post Id


Пользователь
Super Member


Покинул форум
Сообщений всего: 1027
Дата рег-ции: Февр. 2009  
Репутация: 31




viperrr пишет:
Походу мне некто не поможет!
а ты права правильно поставил на файлы?
 
 
viperrr
Отправлено: 17 июня 2010 — 04:46
Post Id


Пользователь
Newbie


Покинул форум
Сообщений всего: 48
Дата рег-ции: Авг. 2009  
Репутация: 5




Defenderyk пишет:
viperrr пишет:
Походу мне некто не поможет!
а ты права правильно поставил на файлы?



Перевод с транслита:
т6 про ети права?

<<< для большинства серверов CHMOD на файлы для записи (напр. allforums.php) 0666, на папки для записи (напр. data) 0777, для всех остальных файлов и папок 0644 и 0755 соответственно. >>>

Перевод с транслита:
форум много раз обновлjалсjа, но всегда по инстреикциjам, долзно б6т' все правел'но раставленно.
на какие именно фаил6 надо проверит' права?

Соррy за ету абру-кадабру, у менjа на работе нет русскоy клавиатур6
Радость

(Отредактировано автором: 17 июня 2010 — 04:50)

 
 
Страниц (4): [1] 2 3 4 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Решение проблем »

> Похожие темы: Массовая рассылка с админки
Темы Форум Информация о теме Обновление
Рассылка всем пользователям
рассылка уведомлений
Настройка форума Ответов: 2
Автор темы: Виктор Андреев
6 сентября 2010 — 09:02
Автор: Виктор Андреев
Ошибка при массовой рассылки
Массовая рассылка
Решение проблем Ответов: 11
Автор темы: sergan
8 ноября 2009 — 15:29
Автор: yura3d
Запрет индексации форумов/подфорумов поисковиками
возможно ли реализовать из админки?
Настройка форума Ответов: 10
Автор темы: mastersound
28 апреля 2010 — 08:20
Автор: nikk
Массовая отправка писем
Какие могут быть проблемы при отправке.
Общие вопросы Ответов: 1
Автор темы: сашакаша
12 декабря 2013 — 03:55
Автор: Zeg
Забыт пароль от админки
Решение проблем Ответов: 11
Автор темы: Olish
11 апреля 2011 — 23:54
Автор: 1Bot
 



Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 




Яндекс.Метрика   

Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.1052]     [ ]