|
|
|
| Помогите составить цикл отправки почты из БД
делаю так:
$row = @mysql_query("select * from sub_mail where (`mail`='1');");
while ($maillist=mysql_fetch_array($row))
{
for($i=0; $i < $allmail; $i++)
{
mail($maillist[$i], $subject,
$body ."From: $fromemail");
}
}
|
не получается =(
Первый раз пытаюсь сделать цикл, помогите!
Заранее спасибо! | |
|
|
|
|
|
|
|
для: Елена Смирнова
(26.03.2008 в 18:31)
| | Так должно рабтать:
$row = @mysql_query("select * from sub_mail where `mail`='1'")
or die(mysql_error()); // на всякий случай=)
while ($maillist=mysql_fetch_array($row))
{
mail($maillist['mail'], $subject, $body ."From: $fromemail");
}
|
На будущее - во-первых, не ставьте @, если не уверены в явной необходимости этого знака, и во-вторых, пишите, чтоименно не получается, какие именно ошибки выдаются и т.д. Как написали в одном FAQ'е, "Описывайте проблему сами - наши телепаты в отпуске."=) | |
|
|
|
|
|
|
|
для: Елена Смирнова
(26.03.2008 в 18:31)
| |
<?php
row = @mysql_query(\"select * from sub_mail where (`mail`=\'1\');\");
while ($maillist=mysql_fetch_array($row))
{
mail($maillist[\'поле_получателм\'],\"Hello From \".PHP_OS.\"!\",\"Testing successfully!\",\"From: root@localhost\");
}
?>
;)
|
// Слеши (\\\\) удалите все, форум тупит что-то. | |
|
|
|
|
|
|
|
для: coder-decoder
(26.03.2008 в 18:51)
| | Спасибо, работает. А как мне вывисти кол-во посланного? | |
|
|
|
|
|
|
|
для: Елена Смирнова
(26.03.2008 в 19:06)
| | <?php
$row = @mysql_query("select * from sub_mail where (`mail`='1');");
while ($maillist=mysql_fetch_array($row))
{
$i++;
mail($maillist['поле_получателм'],"Hello From ".PHP_OS."!","Testing successfully!","From: root@localhost");
}
echo "Кол-во отправленных сообщений - ".$i;
?> | |
|
|
|
|
|
|
|
для: coder-decoder
(26.03.2008 в 19:26)
| | coder-decoder, скажите, а что такое $i++; ??? откуда оно берется? | |
|
|
|
|
|
|
|
для: Елена Смирнова
(26.03.2008 в 19:06)
| | И еще как быть если в БД очень много емаил... У меня сейчас 900 но даже с таким объемом чувствуется напряженность выполнения, а что тогда будет когда емайлов наберется более 10000 ??? Посоветуйте | |
|
|
|
|
|
|
|
для: Елена Смирнова
(26.03.2008 в 19:27)
| | $i++ -- это увеличение некой переменной $i на 1 при каждой интерации (повторении) команд тела цикла.
По поводу производительности рассылки -- запускайте скрипт из шелла
/usr/local/bin/php-cgi -f /path/to/script.php &
и выделите ему побольше озу, и бесконечный лимит времени
<?php
// В самом верху скрипта
ini_set("memory_limit","256M"); // Выделяем скрипту 256 Мб ОЗУ.
ini_set("max_execution_time","0"); // Отключаем лимит времени для исполнения скрипта.
?>
|
Естественно желательно иметь Выделенный сервер в личном распоряжении, либо можный VDS/VPS, ну или накрайняк SSH на виртуальном хостинге, но за такие игрушки могут и попросить с оного:) | |
|
|
|
|
|
|
|
для: coder-decoder
(26.03.2008 в 21:19)
| | А может можно как то разбить этот цикл и посылать вручную по 500 например с интервалом времени в 1 час | |
|
|
|
|
|
|
|
для: Елена Смирнова
(26.03.2008 в 22:43)
| | По принципу постраничной навигации может ??? | |
|
|
|