PHP: рассыка

Форум для программистов

Сообщение ita » Чт апр 08, 2004 1:58 pm

пока ничего другого кроме как сделать цикл в голову не приходит, но рассылать 1000 писем скрипт этот будет довольно долго.
какие нить другие варианты есть?
Последний раз редактировалось ita Ср апр 14, 2004 8:03 am, всего редактировалось 1 раз.
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение BuG » Пт апр 09, 2004 2:31 am

только что закончил разработку такой рассылки...
рассылал напрямую через SMTP сокетами под каждый мыл один сокет. Работает долго, но зато надежно. Главное не забыть set_time_limit(0) :))
Добавлено:
Да, кстати, циклом естессно, по другому никак...
Вообще можно мудрый алгоритм придумать, который будет отсчитывать кол-во знаков которое по РФЦ можно вбить максимально в поле Bcc и отправлять сразу десятку-двум адресатам, но оно у меня по крайней мере того пока не стоит...
Зато цикл позволяет в письме к каждому подписчику обращаться по имени :) Т.е. рассылка как бы персонифицированная :)
<!--sizeo:2--><span style="font-size:10pt;line-height:100%"><!--/sizeo--><a href="http://www.brilow.info/" target="_blank">Мой профессиональный блог</a><!--sizec--></span><!--/sizec-->
<a href="http://bug13.livejournal.com/" target="_blank">ЖЖ</a>
BuG
Полковник
 
Сообщений: 1524
Зарегистрирован: Пт мар 29, 2002 5:00 am
Откуда: Almaty/Kazakhstan
Пункты репутации: 0

Сообщение ita » Пт апр 09, 2004 5:21 am

несколько получателей в одной строке - я думал об этом, но не подходит - нельзя делится адресами получателей с другими получателями :)
дело в том, что рассылка должна приходить всем в одно время +-1 минута, а так получается, сотня писем - 40 сек, 1000 - 4000, а кол - во подписчиков надеюсь будет расти :)
вобщем есть 2 варианта:
- использовать mailman 2.1, установленный у прова, но его админить нужно отдельно, да и как с ним работать я пока еще не понял :(
- каким-то образом запустить на выполнение в скрипте несколько циклов паралельно, но вот как это сделать и возможно ли это.. когда - то довольно давно вроде наткнулся на то, как это сделать, но сейчас найти не могу.
PS - а зачем через SMTP? mail() имхо вполне прилично работает, да и проще с ней.
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение Миша Спларов » Пт апр 09, 2004 4:51 pm

2ita
случаем не ты в руснете на php это спрашивал?.. :-)
А так, имхо через цикл... И несколькими циклами по правде граммотно придумано :-)
«Проектирование интерфейсов — увлекательный дизайнерский процесс. Схожее удовольствие можно получить от сложной верстки, от создания многомерных схем и решения других задач на логику и эстетику». (q) A. Лебедев
Миша Спларов
Генерал-лейтенант
 
Сообщений: 3022
Зарегистрирован: Пн апр 22, 2002 7:58 am
Откуда: Россия, Томск
Пункты репутации: 0

Сообщение ita » Пт апр 09, 2004 9:45 pm

<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->случаем не ты в руснете на php это спрашивал?.. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->хде? на руборде спрашивал, ща пойду гляну чего написали..<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->И несколькими циклами по правде граммотно придумано <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->вот только как их запустить параллельно в одном скрипте?
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение SiMM » Сб апр 10, 2004 9:09 am

2ita, а зачем тебе делать это с точностью +-1 минута, да ещё и параллельно? Думаю, твоему хостеру твоя идея врядли понравится.
IRC: <a href='http://www.fileforum.ru/irc.php' target='_blank'>RUSNET #fileforum</a> (irc.tsk.ru:6669)
SiMM
Подполковник
 
Сообщений: 588
Зарегистрирован: Чт июн 13, 2002 8:41 am
Пункты репутации: 0

Сообщение Миша Спларов » Пн апр 12, 2004 10:18 am

2ita
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->хде? на руборде спрашивал, ща пойду гляну чего написали..<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
руснет - это irc сеть так сказать...
<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->вот только как их запустить параллельно в одном скрипте?<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
попробую что-нибудь придумать. в аське поговрим... на эту тему :-)
«Проектирование интерфейсов — увлекательный дизайнерский процесс. Схожее удовольствие можно получить от сложной верстки, от создания многомерных схем и решения других задач на логику и эстетику». (q) A. Лебедев
Миша Спларов
Генерал-лейтенант
 
Сообщений: 3022
Зарегистрирован: Пн апр 22, 2002 7:58 am
Откуда: Россия, Томск
Пункты репутации: 0

Сообщение Bio Wolf » Ср апр 14, 2004 5:20 am

2Миша Спларов
А результаты разговора пожалуйста в форум Изображение, так как людям думаю будет интересно почитать, да и я тоже этим вопросом заниматься скоро буду.
Последний раз редактировалось Bio Wolf Ср апр 14, 2004 5:21 am, всего редактировалось 1 раз.
Спам придумали боги в отместку за наши молитвы.
Bio Wolf
Майор
 
Сообщений: 397
Зарегистрирован: Пн апр 08, 2002 9:23 pm
Откуда: KG
Пункты репутации: 0

Сообщение ita » Ср апр 14, 2004 6:18 am

2Bio Wolf
вобщем-то разобрался. теперь только осталось разобраться с crontab - как задания добавлять скриптом и как скрипт по крон запускать с параметром, типа как метод get из формы.

алгоритм примерно такой:
- посчитать кол - во подписчиков
- модифицировать задания cron, добавить несколько задач, каждой передать сколько ей выбирать подписчиков из базы.
- ну и сам скрипт рассылки, получить параметр, выбрать столько адресов, сколько нужно, разослать.

так.. а если скрипт запускать не как php /home/user/file.php, а wget /home/user/file.php может тогда параметры get передать получиться. пошел пробовать.
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение ita » Ср апр 14, 2004 8:12 am

так, теперь проблемы с system()...
system("crontab -l"); - выдает те задачи которые у меня уже есть в этом файле:
Код: выделить все
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (//home/avto/.crontab installed on Wed Apr 14 02:31:09 2004)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
MAILTO="admin@domen.ua"
*/30 * * * * php /home/user/dir/index.php
*/30 * * * * php /home/user/dir/index.php

вот только понять не могу почему строка с задачей 2 раза написана.
а если пробовать менять этот файл - ничего не меняется.
system("crontab 30 * * * * php /home/user/dir/test.php") - не работает
system("crontab -e 30 * * * * php /home/user/dir/test.php") - не работает

и что с ней дальше делать - не знаю. не меняется ничего в файле :(
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение Crow » Ср апр 14, 2004 9:48 am

<!--QuoteBegin-ita+Apr 14 2004, 09:18--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата (ita @ Apr 14 2004, 09:18)</td></tr><tr><td id='QUOTE'><!--QuoteEBegin--> так.. а если скрипт запускать не как php /home/user/file.php, а wget /home/user/file.php может тогда параметры get передать получиться. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
а чем argc и argv не устраивают? Изображение
Всё не так уж важно...
Crow
Капитан
 
Сообщений: 206
Зарегистрирован: Пт мар 28, 2003 4:31 am
Откуда: Ukraine>Kharkov
Пункты репутации: 0

Сообщение ita » Ср апр 14, 2004 10:33 am

2Crow
уже устраивает :)
да и с изменением задач разобрался, через ж** правда работает, вначале в файл пишу, потом из файла и меняю задачи :)
так что
system("crontab ".$file." 2>&1") - работает
$file - путь к файлу
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0

Сообщение Crow » Ср апр 14, 2004 1:43 pm

а как там со временем отправки? или пока обьём небольшой и успевает рассылаться?
Всё не так уж важно...
Crow
Капитан
 
Сообщений: 206
Зарегистрирован: Пт мар 28, 2003 4:31 am
Откуда: Ukraine>Kharkov
Пункты репутации: 0

Сообщение ita » Чт апр 15, 2004 8:34 am

2Crow
каждая задача отсылает 50 писем, так что успевает.
Продается лунный грунт! Предоплата 100%, самовывоз.
ita
Подполковник
 
Сообщений: 717
Зарегистрирован: Ср сен 11, 2002 12:00 am
Откуда: dp.ua
Пункты репутации: 0


Вернуться в Программирование

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

cron