[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Массовая рассылка писем
Rocklviv
Всем привет!
у меня есть написаный просто класс отправки писем:
 <?php
class
mailer {
/**
* vars
*/

var $header;
var $rcpt;
var $message;
var $subject;

function head () {
$this->header[] = "MIME-Version: 1.0";
$this->header[] = "Content-type: text/html; charset=utf-8";
} // End of head

function from ($email, $user) {
@ini_set("sendmail_from", "noreply@rocket.pp.ua");
$this->header[] = 'From: '.$email.' <'.$name.'>';
} // End of from

function add_rcpt ($email) {
$this->rcpt[] = $email;
} // End of add_rcpt

function add_cc($email) {
////Adds a carbon copy address
$this->headers[] = 'CC: '.$email;
} // End of add_cc

function subject($subject) {
////Sets the message subject
$this->subject = $subject;
} // End of subject

function message($message) {
////Sets the message body
$this->message = $message;
} // end of message

function custom_header($headername, $headervalue) {
////Adds a custom header
$this->headers[] = $headername.': '.$headervalue;
} // End of custom_header

function send() {
////sends the email
$recipients_separated = implode(",", $this->recipients);
$headers = "";
foreach($this->headers as $header)
{
$headers .= $header.';';
}
return mail($recipients_separated, $this->subject, $this->message, $headers);
} // End of Send function


} // End of class

?>


Вот собсна и интересует меня:
1. ЗДравая критика к коду !
2. Если на хостинге нельзя отправлять письма подряд, как сделать задрежку !



Спустя 22 минуты, 10 секунд (7.09.2011 - 17:51) alex12060 написал(а):
Цитата
как сделать задрежку !



sleep(1);

Спустя 52 минуты, 10 секунд (7.09.2011 - 18:43) inpost написал(а):
alex12060
Cделал разок sleep, скрипт выполнялся 10`000 секунд! smile.gif

Rocklviv
Сделай курлом запуск рассылки, то есть фоновом режиме, и да - sleep(1) поможет.

Спустя 3 часа, 51 минута, 30 секунд (7.09.2011 - 22:35) Rocklviv написал(а):
inpost
а если можно чуток подробней про курл )

З.Ы. если не ошибаюсь, задержку указывать в функции send(); ?

Спустя 2 минуты, 34 секунды (7.09.2011 - 22:37) inpost написал(а):
ой, не курл, а CRON =)

Задержку - без разницы, между двумя функциями mail();

Спустя 4 минуты, 28 секунд (7.09.2011 - 22:42) Rocklviv написал(а):
а собсна, чего то я не догоняю )))
а зачем здеся крон?

если я просто хочу отправить mass-mail про новый event, сразу после создания этого event`a!
как мне в этом поможет крон?

Спустя 13 минут, 57 секунд (7.09.2011 - 22:56) Игорь_Vasinsky написал(а):
крон поможет те заплонировать выполнение скрипта.
а секунды будет достаточно чтоб не забанили? если конеш не собственный майл сервер?

Спустя 3 минуты, 10 секунд (7.09.2011 - 22:59) Rocklviv написал(а):
я уже задумал над своим мейл сервером !
но! если я в скрипте установлю sleep(1); будет ли mass-mail рассылка по тем адресам которые подписались на рассылку ?

Спустя 12 минут, 1 секунда (7.09.2011 - 23:11) Игорь_Vasinsky написал(а):
sleep(1) - всего лишь задержку на 1 сек каждой mail() в цикле, если не поставить задержку - посадят как спаммера и заблокируют аккаунт.

Спустя 44 минуты, 57 секунд (7.09.2011 - 23:56) inpost написал(а):
Игорь_Vasinsky
Не знаю как у тебя, но у меня второй mail() вернёт как FALSE< потому что нельзя посылать слишком быстро. Но никто не сажает как спаммера smile.gif

Rocklviv
Крон затем, что 1 секунда - обработка 1 письма. У меня сейчас тяжелый скрипт + 4000 юзеров, теперь ставлю 1 секунду - получают 8-10 тыс. секунд, вот посчитай, сколько минут будет занимать твоя рассылка, и если ты её дашь своему начальнику, будет ли он сидеть внутри скрипта и ждать, или просто закроет скрипт, в любом случае будет идти очень долго. А если запускать кроном независимо от пользователя, то никому сидеть и ждать не придется. Я сначала у себя хотел тоже кроном поставить, но так как сервак наш, то использую mail() вообще без задержки.

Спустя 33 минуты, 51 секунда (8.09.2011 - 00:30) Rocklviv написал(а):
inpost
ты просто передаеш в скрипт массив мейлов на которые отправлять емейл ?


Спустя 4 минуты, 20 секунд (8.09.2011 - 00:34) inpost написал(а):
я их из БД беру smile.gif абсолютно весь массив smile.gif

Спустя 7 минут, 4 секунды (8.09.2011 - 00:41) Rocklviv написал(а):
Собсна, что меня и интересовало ))))
Всем спасибо !!

З.Ы. Кста, сам клас не есть сыроват ? ибо пишу крайне редко )) совсем у меня другая специальность )))

Спустя 20 дней, 11 часов, 50 минут, 12 секунд (28.09.2011 - 12:31) Guest написал(а):
Кто-нибудь здесь делал рассылку over1М писем с помощью php? И как делаются такие рассылки? Через Php страшно-жутко тормозит. Делаю отправку порциями (по 15..30 штук за раз) и приходится ждать несколько дней... Чем пользуются в таких случаях?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.