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
Форумы портала PHP.SU :: Версия для печати :: Организация отправки почты пользователям
Форумы портала PHP.SU » » Работа с сетью » Организация отправки почты пользователям

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

1. Алтенрион - 14 Ноября, 2012 - 10:53:24 - перейти к сообщению
Подскажите какие есть варианты реализации массовой рассылки информационных писем для зарегестрированных пользователей портала?

Есть база прикрученная к сайту. Не очень объемная, на 1,5 тысячи и на 350+ людей. Требуется по команде отсылать им различные информирующие о мероприятиях письма.

Как это наиболее корректно сделать?
Хотел использовать выборку всех email из базы и вставлять прямо в
PHP:
скопировать код в буфер обмена
  1. mail($to, $subject, $message, $headers);
, но вычитал на форуме что могут быть проблемы или ограничения по едино разовой отправке большому кол-ву пользователей ...

Убедительная просьба приводить ссылки на мануал по технологии. Так как вопрос очень срочный сразу буду переходить по ссылкам и разбираться. Чем подробнее ответите тем лучше.

Заранее спасибо.
2. armancho7777777 - 14 Ноября, 2012 - 11:01:30 - перейти к сообщению
Попробуйте этот класс:
http://forum.php.su/topic.php?fo...35&topic=788
3. Алтенрион - 14 Ноября, 2012 - 13:39:49 - перейти к сообщению
Вопрос:

Если перед строкой адресата :

Цитата:
$send_mail->email('user@mail.ru') // Адресат (можно массив адресов)


Напишу запрос на выборку мэйлов, например так :

Цитата:
$mail_to = mysql_query ("SELECT email FROM users WHERE ... ");


и вместо "email" вставлю переменную "$mail_to" будет ли работать?.. Или что либо следует подредактировать?.

Подскажите пожалуйста, я сравнительно недавно изучаю php.
4. Crusader - 14 Ноября, 2012 - 14:42:46 - перейти к сообщению
Вопрос по большим объемам писем:
сколько писем максимум может одновременно поставить в очередь postfix? Просто сейчас решается вопрос - нужно ли делать очередь отправки в самом приложении, или можно положиться на MTA?
5. keltstr - 05 Января, 2013 - 01:54:05 - перейти к сообщению
Алтенрион пишет:
Вопрос:

Если перед строкой адресата :

Цитата:
$send_mail->email('user@mail.ru') // Адресат (можно массив адресов)


Напишу запрос на выборку мэйлов, например так :

Цитата:
$mail_to = mysql_query ("SELECT email FROM users WHERE ... ");


и вместо "email" вставлю переменную "$mail_to" будет ли работать?.. Или что либо следует подредактировать?.

Подскажите пожалуйста, я сравнительно недавно изучаю php.


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

$all_emails_array = mysql_fetch_array($mail_to, MYSQL_NUM);

теперь $all_emails_array можно подставлять в $send_mail
6. Алтенрион - 06 Января, 2013 - 16:45:29 - перейти к сообщению
Благодарю. Тема по прежнему актуальна хоть и была отложена в сторону. Буду тестить.
7. arsen4ik - 07 Января, 2013 - 21:10:41 - перейти к сообщению
Алтенрион пишет:
но вычитал на форуме что могут быть проблемы или ограничения по едино разовой отправке большому кол-ву пользователей

Как понять? А как ты за один раз отправишь? Если циклом пройтись по всем пользователям то каждый цикл это новая отправка сообщения
8. NoPaper - 08 Января, 2013 - 11:43:55 - перейти к сообщению
arsen4ik пишет:
Алтенрион пишет:
но вычитал на форуме что могут быть проблемы или ограничения по едино разовой отправке большому кол-ву пользователей

Как понять? А как ты за один раз отправишь? Если циклом пройтись по всем пользователям то каждый цикл это новая отправка сообщения

Если указать несколько получателей через запятую, можно обойтись без циклов.
А если и использовать циклы, то между отправками сообщений нужно задержку ставить 1.5-2 секунды, ибо при большом кол-ве получателей попадем в бан.
(Добавление)
keltstr пишет:

$all_emails_array = mysql_fetch_array($mail_to, MYSQL_NUM);

теперь $all_emails_array можно подставлять в $send_mail


Если сообщения одинаковые, а получатели разные:
PHP:
скопировать код в буфер обмена
  1. $all_emails_array = implode(', ',mysql_fetch_array($mail_to, MYSQL_NUM));
9. Алтенрион - 08 Января, 2013 - 16:37:28 - перейти к сообщению
NoPaper - Я хочу вас в свои наставники по изучению php! Вы мне столько решений помогли уже реализовать!...

Отправку почты буду тестить примерно дня через два. О результатах отпишу. Пока вопрос: как реагирует сервер на отправку почты циклом? как на отдельные запросы или как на обработку одного?
10. keltstr - 08 Января, 2013 - 19:34:21 - перейти к сообщению
результаты ждем )

 

Powered by ExBB FM 1.0 RC1