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

Форум PHP

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

 

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

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

тема: Отправление писем в очереди
 
 автор: Saveliy   (09.04.2008 в 23:58)   письмо автору
 
 

Здравствуйте подскажите как можно реализовать следущее:
есть форма, при нажатии на кнопку срабатывает функция mail() и письмо уходит адресату.
Но проблема вся в том что имееться 3 email-а и нужно сделать так, что бы:
1-ый полученный результат отправлялся на 1-ый email,
2-ой результат отправлялся на 2-ой email,
3-ий на 3-ий,
4-ый на 1-ый,
5-ый на 2-ой
и так далее ...

   
 
 автор: mechanic   (10.04.2008 в 09:15)   письмо автору
 
   для: Saveliy   (09.04.2008 в 23:58)
 

а что за "1-ый полученный результат", 2-й и т.д.??
может как то так

$emails = array(0 => 'eml1@eml.ru', 1 => 'eml2@eml.ru', 2 => 'eml3@eml.ru')
$i = 0;
while($result) {
    $current_email = $emails[$i++%3];
    //тут отправляем или делаем еще что то
}

   
 
 автор: Saveliy   (10.04.2008 в 09:49)   письмо автору
 
   для: mechanic   (10.04.2008 в 09:15)
 

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

Тут вся суть такая, есть сайт, а на нем форма для отправки заказа, когда пользователь заполняет форму и нажимает кнопку отправить, то полученные данные превращаються в результат, который отправляеться по почте на 1-ый email
Затем через "часок" заходит другой пользователь и тоже заполняет форму, нажимает на кнопку отправить, и полученный результат отправляеться уже на 2-ой email.
Потом на 3-ий email.
Затем сново отправляеться на 1-ый email.
Тоесть, для обработки заказов имееться 3 человека. и чтоб не нагружать их сильно, то необх. что б письма им приходили поочередно ))

   
 
 автор: mechanic   (10.04.2008 в 10:05)   письмо автору
 
   для: Saveliy   (10.04.2008 в 09:49)
 

тю.. как все просто )
допустим если список емайлов хранится в базе, то надо бы там добавить поле например orders_num, которое при отправке заказа на этот емайл будет инкрементироваться (+1)
далее логика:
пользователь заходит чтоб оформить заказ, в момент генерации страницы с формой, в hidden-поле выбирается id емайла по принципу
select id from emails order by orders_num asc limit 1

т.е. выбираем тот, на который еще было мало заказов
когда форма сабмитится, поле orders_num для данного емайла инкрементируется и при следующей выборке будет получен уже другой id

   
 
 автор: Saveliy   (10.04.2008 в 10:25)   письмо автору
 
   для: mechanic   (10.04.2008 в 10:05)
 

Прикольное решение ))) Спасибо огромное )
Скажите а возможно ли все сделать тоже самое , без использования БД ?

   
 
 автор: mechanic   (10.04.2008 в 10:29)   письмо автору
 
   для: Saveliy   (10.04.2008 в 10:25)
 

я предвидел этот вопрос..
можно конечно, файл вида

eml1@eml.ru:20
eml2@eml.ru:26
eml3@eml.ru:22

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

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

   
 
 автор: Saveliy   (10.04.2008 в 10:46)   письмо автору
 
   для: mechanic   (10.04.2008 в 10:29)
 

Спасибо еще разок Вам огромное )) буду ченить мудрить :)

   
Rambler's Top100
вверх

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