Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Как лучше всего сделать рассылку
 
 автор: vquery   (14.03.2007 в 21:59)   письмо автору
 
 

Как лучше всего сделать рассылку чтобы письма рассылались людям записанным в базе данных mysql с помощью цикла for и функции майл или каким то другим способом.
Можно ли использовать данный способ если число подписчиков десятки тысяч

   
 
 автор: bronenos   (14.03.2007 в 22:27)   письмо автору
 
   для: vquery   (14.03.2007 в 21:59)
 

Насчет десятков тысяч за раз будет многовато
Делите процесс на части
Вот примерно так можно организовать
<?
$sql 
mysql_query ('select * from subscriptions limit 100');

while (
$row mysql_fetch_assoc($sql))
  
$list[] = $row['email'];

foreach (
$list as $i)
{
  
mail ($i'Subscription''Text');
  
sleep (1);
}
?>

   
 
 автор: cheops   (15.03.2007 в 02:19)   письмо автору
 
   для: vquery   (14.03.2007 в 21:59)
 

Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=7487. Всё сводится к тому, что требуется добавить почтовый заголовок Bcc
<?php  
$headers
.="Bcc: sidor@mysite.ru\r\n";  
$headers.="Bcc: sidor1@mysite.ru\r\n";  
$headers.="Bcc: sidor2@mysite.ru\r\n";  
mail("zxcv@zxcv.ru",$tema,$piss,$headers); 
?>
столько раз, сколько "слепых" копий вы хотите отправить.

   
 
 автор: vquery   (15.03.2007 в 18:32)   письмо автору
 
   для: cheops   (15.03.2007 в 02:19)
 

А тогда все отправленные адреса не будут видны каждому из получателей или все смогут увидеть кому еще они отправлены?

   
 
 автор: cheops   (16.03.2007 в 00:53)   письмо автору
 
   для: vquery   (15.03.2007 в 18:32)
 

Никто не будет видеть свой адрес и адреса соседей, будет доступен только основной адрес.

   
 
 автор: vquery   (22.03.2007 в 05:50)   письмо автору
 
   для: cheops   (16.03.2007 в 00:53)
 

Огромное спасибо.
Еще хотел узнать что такое
sleep (1); (сообщение bronenos)
в функции while зачем она и где про нее можно почитать.
В вашей замечательной книге про ПХП (она(вернее обе) правда мне очень понравиллась и помогла) про это я не нашел...

И еще вопрос может ли быть тысячи? Разрешит ли хостер отправлять столько писем таким способом есть ли ограничения и подводные камни? Для отправки писем потребуется столько же времени сколько и для одного или больше?

   
 
 автор: cheops   (22.03.2007 в 13:09)   письмо автору
 
   для: vquery   (22.03.2007 в 05:50)
 

sleep() - приостанавливает работу скрипта на время, указанное в аргументе (в данном случае на 1 секунду).

PS Вопрос массовой отправки писем лучше согласовать с хостером.

   
 
 автор: vquery   (23.03.2007 в 06:13)   письмо автору
 
   для: cheops   (22.03.2007 в 13:09)
 

А зачем? что это дает? потм будет выполнен новый запрос mysql и будут вынуты новые 100 позиций или как?

   
 
 автор: KPETuH   (23.03.2007 в 06:53)   письмо автору
 
   для: vquery   (23.03.2007 в 06:13)
 

Рауза делается затем, что возможна повышенная загрузка сервера из за вашего скрипта и пайза не позволяет скрипту это делать... Но делается она не во всех циклах естественно, а в тех циклах где существуют операторы и функции каторые как раз и могут нагрузить сервер при непрерывной работе (например при работе с большим количеством сокетов или при несколькмх тысячах запросов к базе данных)

   
 
 автор: vquery   (23.03.2007 в 18:45)   письмо автору
 
   для: KPETuH   (23.03.2007 в 06:53)
 

А вот этот скрипт
<?php
$headers.="Bcc: sidor@mysite.ru\r\n";
$headers.="Bcc: sidor1@mysite.ru\r\n";
$headers.="Bcc: sidor2@mysite.ru\r\n";
mail("zxcv@zxcv.ru",$tema,$piss,$headers);
?>

Сколько по аремени он будет выполняться если адресов будет несколько тысяч?
Хостер говорит что на массовую отправку писем ограничений нет зависит от скорости работы скрипта.

   
 
 автор: ddhvvn   (23.03.2007 в 18:51)   письмо автору
 
   для: vquery   (23.03.2007 в 18:45)
 

Копии данного сообщения будут отправляться с сервера рассылки, так что это уже не Ваши проблемы...

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования