2013-10-26 5 views
-1

Итак, я бегу на бесплатный веб-хост 3owl.com. Я знаю, что бесплатные хосты сосут по сравнению с оплаченными, но временными. В любом случае, у меня есть 90 пользователей, которым нужна электронная почта, отправленная им.Отправить массовые электронные письма в php в разделах? Остановить спам?

Вопрос:

I cannot send them at a speed of more than 1 every 4 seconds. 

I must not run the while loop for more than 40 seconds at a time. 

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

Send email 1 
4 second break 
Send email 2 
4 second break 
Send email 3 
4 second break 
Send email 4 
4 second break 
Send email 5 
4 second break 
Send email 6 
4 second break 
Send email 7 
4 second break 
Send email 8 
4 second break 
Send email 9 
4 second break 
Send email 10 
--------------- 
STOP SCRIPT in a way that doesnt load the website? for 10 seconds 
--------------- 
continue with the next 10 

Возможно ли это? Может быть какая-то система CheckBox, какой список пользователей, и вы можете проверить, кто вы хотите, чтобы отправить его на ...

Вот мой текущий код

mail_users($_POST['subject'], $_POST['content']); 

И функция, которая выглядит следующим образом:

function mail_users($subject, $body) { 
    $query = mysql_query("SELECT `email`, `first_name` FROM `users` WHERE `allow_email` = 1"); 
    while (($row = mysql_fetch_assoc($query)) !== false) { 
     email($row['email'], $subject, "Hello ". $row['first_name'] . ",\n\n" . $body); 
     sleep(4); 
    } 
} 

Мне очень нужна помощь. Возможно, для флажков необходим javascript

+2

Есть ли причина, по которой вам нужно сделать это, используя код на веб-странице? Вы рассматривали экспорт своего списка электронной почты в Outlook или ConstantContact? – aviemet

+0

У вас есть доступ к оболочке? Замените sendmail на qmail, и вы можете поставить очередь на отправку. он работал для меня в той же ситуации, когда я должен регулировать количество сообщений, отправленных за промежуток времени. И не рекламировать, но Digital Ocean предлагает штопать мелкий хоккей на 5 долларов в месяц. – chiliNUT

ответ

0

Так что это, как я сделал это (в течение длительного времени с веб-сайта, который имел тысячи пользователей)

Это совершенно хак, но это работает.

Построить страницу, которая отправляет один адрес электронной почты и отметьте, что пользователь, как «послал» в БД, например (пересылаются = 1)

Выберите следующий пользователь, который не «послал» (например, послал = 0)

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

в ночи, ясно db of (все пользователи отправлены = 0)

(Раньше у меня были сценарии, которые проводились всю ночь ...)

+0

Пример кода, пожалуйста ... – user2921945

+0

Ок, [http://en.wikipedia.org/wiki/Meta_refresh] '' – ssaltman

+0

В теге head (это находится в классическом asp, потому что это то, на чем был написан сайт, - сказал вам, что это было давно) ' "", то \t response.write запрос ("ждать") еще \t response.write конец, если выберите запрос "600" случай ("ВФ") \t случай "бюллетень" %>; URL = HTTP: // WWW .mydomain.com // newsletter_autosend.asp?test = <% = request ("test")%> & resend = <% = request ("resend")%> & newsid = <% = request ("newsid")%> ">' – ssaltman

1

Вы также можете использовать JavaScript и использовать Ajax для вызова PHP, который отправляет почту. Используйте setTimeOut для вызова скрипта каждые четыре секунды и отслеживайте, какое электронное письмо отправляется через переменные строки запроса.

Смежные вопросы