|
|
|
| Есть скрипт который берет email из таблицы mysql tab1, вставляет в письмо результат tab1.php и отправляет пользователю.
Проблема вот в чем, адресов в таблице mysql tab1 десятки, а письмо отправляется только первому, не могу понять почему?
Подскажите пожалуйста!
Вот код
<?
include("var.php");
mysql_select_db ($DB);
$query = "SELECT COUNT(*) FROM tab1 ";
$result = mysql_query($query);
$count = mysql_result($result,0,'COUNT(*)');
$query1 = "SELECT * FROM tab1";
$result1 = mysql_query($query1);
for ($i=0; $i < $count; $i++)
{
$f=mysql_fetch_array($result1);
$email = $f['email'];
$adminemail = "sending@dalinoboyschik.com";
include("tab1.php");
$headers=null;
$headers.="Content-Type: text/html; charset=windows-1251\r\n";
$headers.="From:sending@dalinoboyschik.com <".$adminemail.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$boardurl="http://$host$self";
$boardurl=str_replace("board/tools.php", "board/index.php", $boardurl);
mail("$email", "Рассылка1", $message, $headers);
}
?> | |
|
|
|
|
|
|
|
для: yuriy
(20.05.2006 в 10:00)
| | А что требуется? Отправить письма всем или отправить письмо не первому адресату, а какому-то конкретному? | |
|
|
|
|
|
|
|
для: cheops
(20.05.2006 в 12:21)
| | Отправить всем пользователям | |
|
|
|
|
|
|
|
для: yuriy
(20.05.2006 в 13:24)
| | Попробуйте воспользоваться следующим кодом
<?php
include("var.php");
mysql_select_db ($DB);
$query = "SELECT * FROM tab1";
$result = mysql_query($query);
if(!$result) exit(mysql_error());
if(mysql_num_rows($result) > 0)
{
while($f = mysql_fetch_array($result))
{
$email = $f['email'];
$adminemail = "sending@dalinoboyschik.com";
include("tab1.php");
$headers=null;
$headers.="Content-Type: text/html; charset=windows-1251\r\n";
$headers.="From:sending@dalinoboyschik.com <".$adminemail.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$boardurl="http://$host$self";
$boardurl=str_replace("board/tools.php", "board/index.php", $boardurl);
if(!mail($email, "Рассылка1", $message, $headers)) exit("Письмо не может быть отправлено<br>");
}
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(20.05.2006 в 17:40)
| | Эффект тот же, я в принципе не вижу цикла отправки всем пользователям которые есть в таблице, как это вставить? | |
|
|
|
|
|
|
|
для: yuriy
(20.05.2006 в 21:28)
| |
<?
while($f = mysql_fetch_array($result)) //цикл начался
{
$email = $f['email'];
$adminemail = "sending@dalinoboyschik.com";
include("tab1.php");
$headers=null;
$headers.="Content-Type: text/html; charset=windows-1251\r\n";
$headers.="From:sending@dalinoboyschik.com <".$adminemail.">\r\n";
$headers.="X-Mailer: PHP/".phpversion()."\r\n";
$host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"];
$boardurl="http://$host$self";
$boardurl=str_replace("board/tools.php", "board/index.php", $boardurl);
if(!mail($email, "Рассылка1", $message, $headers)) exit("Письмо не может быть отправлено<br>");
} //цикл закончился
|
А у вас хостер не накладывает ограниченией на количество отправляемых писем в единицу времени? | |
|
|
|
|
|
|
|
для: Loki
(20.05.2006 в 22:24)
| | Да все верно, извеняюсь заработался, просто с while давно не работал.
Ограничений на количество нет, я в принципе пробовал на локалке в Денвере, эффект тот же отправляется одно письмо по первому адресу. Подскажите что мне делать? | |
|
|
|
|
|
|
|
для: yuriy
(21.05.2006 в 11:26)
| | Срабатывает ли код
<?php
exit("Письмо не может быть отправлено<br>");
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(21.05.2006 в 11:46)
| | Нет не срабатывает
Нормально выполняется скрипт | |
|
|
|
|
|
|
|
для: yuriy
(21.05.2006 в 12:40)
| | Тогда дело не в коде, а в почтовом сервер, который, скорее всего, не позволяет отправлять много почтовых отправлений за короткое время. Лучше проконсультироваться по этому вопросу с тех.поддержкой хостера. Можно также поставить задержку в цикле, чтобы между отправкой писем был небольшой интервал
| |
|
|
|
|
|
|
|
для: cheops
(21.05.2006 в 14:51)
| | Техническая поддержка говорит что ограничений не каких нет, скорей всего говорят у вас ошибка в скрипте в том числе в файле который я вызываю include tab1.php, посмотрите там используется буфферизация, может там ошибка? | |
|
|
|
|
|
|
|
для: yuriy
(21.05.2006 в 19:23)
| | Вы внутри include перекрываете переменную $result другим значением, теряя при этом контекст результата выборки БД. Цикл тут же завершается.
Такие файлы не запрашивают в цикле. | |
|
|
|