Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Рассылка сообщений всем пользователям

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
cooperok
Отправлено: 25 Мая, 2012 - 12:36:42
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


Помог: 0 раз(а)




Можно ли как то сделать что б сообщения рассылались быстрее,
тоесть мой способо как то долго все это делает на 100 пользователей

PHP:
скопировать код в буфер обмена
  1. if( isset($_POST['submit']) )
  2. {
  3. $headers = "Content-type: text/html; charset = windows-1251";
  4. $zagolovok = $_POST['zagolovok'];
  5. $message = $_POST['message'];
  6. $resultat = mysql_query("SELECT * FROM user");
  7. $x=0;
  8. $array = mysql_fetch_array($resultat);
  9. do
  10.  {
  11.  $to = $array['UserEmail'];
  12.  $send = mail ($to, $zagolovok, $message, $headers);
  13.  $x=$x+1;
  14.  }
  15. while($array = mysql_fetch_array($resultat));
  16. echo "Отправлено ".$x." сообщения";
  17. }


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 Top
re_nat
Отправлено: 25 Мая, 2012 - 13:03:30
Post Id



Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Март 2012  


Помог: 5 раз(а)




А почему do while, а не while? Ну, интересно просто)
И зачем mail(); присваивать переменной в данном случае?

(Отредактировано автором: 25 Мая, 2012 - 13:05:52)

 
 Top
cooperok
Отправлено: 25 Мая, 2012 - 13:04:56
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


Помог: 0 раз(а)




re_nat
Ну я по примеру делал, пример брал выводи из БД, по другому просто неумею)


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 Top
re_nat
Отправлено: 25 Мая, 2012 - 13:08:26
Post Id



Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Март 2012  


Помог: 5 раз(а)




Ну я бы так написал, хотя не думаю что это заметно повысит производительность)
PHP:
скопировать код в буфер обмена
  1.  
  2. while($array = mysql_fetch_array($resultat));
  3.  {
  4.  mail ($array['UserEmail'], $zagolovok, $message, $headers);
  5.  $x++;
  6.  }

(Отредактировано автором: 25 Мая, 2012 - 13:09:03)

 
 Top
denis.n.ko
Отправлено: 25 Мая, 2012 - 13:14:16
Post Id



Новичок


Покинул форум
Сообщений всего: 8
Дата рег-ции: Май 2012  


Помог: 2 раз(а)




Тоже сильно не поможет, но все же...
Цитата:

я бы заменил на
PHP:
скопировать код в буфер обмена
  1. $resultat = mysql_query("SELECT UserEmail FROM user");
 
 Top
Bio man
Отправлено: 25 Мая, 2012 - 13:17:37
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




PHP:
скопировать код в буфер обмена
  1. if(isset($_POST['submit'])){
  2.         $headers = "Content-type: text/html; charset = windows-1251";
  3.         $zagolovok = $_POST['zagolovok'];
  4.         $message = $_POST['message'];
  5.         $resultat = mysql_query("SELECT `UserEmail` FROM `user`");
  6.         $num = mysql_num_rows($resultat);
  7.         while($array = mysql_fetch_assoc($resultat))
  8.                 mail($array['UserEmail'], $zagolovok, $message, $headers);
  9.         echo "Отправлено $num сообщения";
  10. }

(Отредактировано автором: 25 Мая, 2012 - 13:19:25)

 
 Top
re_nat
Отправлено: 25 Мая, 2012 - 13:19:04
Post Id



Частый гость


Покинул форум
Сообщений всего: 198
Дата рег-ции: Март 2012  


Помог: 5 раз(а)




Вообще тут php.net намекает:
php.net пишет:
Не следует использовать функцию mail() для отправки большого количества писем в цикле. Функция открывает и закрывает соединение с SMTP-сервером для каждого письма, что не очень эффективно.

Для отправки большого количества сообщений обратите внимание на пакеты » PEAR::Mail и » PEAR::Mail_Queue.


Думаю, это то, что доктор прописал Закатив глазки


Отредактировано модератором: Мелкий, 25 Мая, 2012 - 13:31:48
цитата в виде цитаты всё же красивее
 
 Top
cooperok
Отправлено: 25 Мая, 2012 - 13:44:12
Post Id


Частый гость


Покинул форум
Сообщений всего: 137
Дата рег-ции: Сент. 2011  
Откуда: Los Angeles, California


Помог: 0 раз(а)




Хорошо, всем спасибо) попытаюсь сделать с помощю PEAR::Mail и » PEAR::Mail_Queue.


-----
This forum is vulnerable. I want to replace forum engine.
(c) OrmaJever
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB