Работа с брошенной корзиной

peretc001

Новичок
а не страшно если функция mail() будет выполняться несколько раз, если например нескольким адресам надо отправить?
PHP:
<?php
$res = mysql_query(" SELECT * FROM email WHERE date <= NOW('Y-m-d H:i:s') and status = 'abandonedcart' ");
        while($row = mysql_fetch_assoc($res)) {
           
// Отправляем письмо админу
            $to  = $row['email'];
            $subject = 'Ваша корзина';
            $message = "Бла, бла, бла";
            $headers  = "Content-type: text/html; charset=utf-8 \r\n";
            $headers .= "From: ...";
            $headers .= "CC: ". $row['email'] ."\r\n";   
            mail($to, $subject, $message, $headers);

        }
?>
 

Andkorol

Новичок
а не страшно если функция mail() будет выполняться несколько раз, если например нескольким адресам надо отправить?
http://php.net/manual/ru/function.mail.php
to

Получатель, или получатели письма.

Формат этого параметра должен соответствовать » RFC 2822. Несколько примеров:

Замечание:

Не следует использовать функцию mail() для отправки большого количества писем в цикле. Функция открывает и закрывает соединение с SMTP-сервером для каждого письма, что не очень эффективно.

Для отправки большого количества сообщений обратите внимание на пакеты » PEAR::Mail и» PEAR::Mail_Queue.
 

Breeze

goshogun
Команда форума
Партнер клуба
@Andkorol, это замечание касается прямой отправки из веб 100500 писем.
Если шлёшь из крона, то пофиг. PEAR в этом случае ненужная прослойка.
 

AnrDaemon

Продвинутый новичок
Даже из крона, возьми PHPMailer - будет проще и быстрее.
 

Breeze

goshogun
Команда форума
Партнер клуба
проще и быстрее
Только по коду.
В остальном разницы никакой, экономия на спичках. Сомневаюсь, что он будет слать 30к писем в час.
У него принципиально другая проблема сейчас, нежели чем и как отправлять письма.
 

Andkorol

Новичок
@Andkorol, это замечание касается прямой отправки из веб 100500 писем.
Если шлёшь из крона, то пофиг. PEAR в этом случае ненужная прослойка.
Что именно «пофиг»?
Как способ запуска скрипта ТС, содержащего использование mail в цикле, способен изменить поведение этой функции?
 

Adelf

Administrator
Команда форума
@Andkorol, когда из крона шлется, то пофиг, пусть хоть минуты работает. Как выше уже написали, врядли у него там такая нагрузка, что надо оптимизировать.
 

Breeze

goshogun
Команда форума
Партнер клуба
Для меня, если код выглядит проще и понятнее, это уже большой плюс.
Он выглядит проще и понятнее тогда, когда ты знаешь что там и зачем.
Для новичка что mail, что phpmailer -- одна магия.
И речь не о простоте/красоте кода изначально, а про ненужную оптимизацию, тем более через PEAR, там, где на данный момент в этом нет необходимости.

Что именно «пофиг»?
Пофиг как работает mail в крон-скриптах, новое соединения на каждый вызов или "keep alive", хотя работать напрямую по smtp в пределах одного соединения тоже невелико удовольствие при отправке большого количества писем за раз.
Что касается реалтайма, так там вообще не нужно использовать ни mail, ни phpmailer, ни еще что-либо напрямую отправляющее письма, если так страшно за производительность.

Достаточно было ответить, что если не отправляет 100500 писем за раз, а 2-3-4-5, то ничего страшного в цикле нет.
И что отправка через cron предпочтительнее, чем реалтайм из веб.
 

Andkorol

Новичок
Достаточно было ответить, что если не отправляет 100500 писем за раз, а 2-3-4-5, то ничего страшного в цикле нет.
И что отправка через cron предпочтительнее, чем реалтайм из веб.
Млин, ну код уже хоть посмотри, который ТС по этому вопросу вывалил...
Там не предусмотрено ничего, чтобы проконтролировать или ограничить количество отправок с использованием mail.
Сегодня у него в таблице 2-3-4-5 таких записей – а завтра 100500.
Но это ничего – ведь «если шлёшь из крона, то пофиг», cron всё стерпит, ага... ;)
 

Breeze

goshogun
Команда форума
Партнер клуба
Ага, а как заюзает стороннюю либу, так у него сразу сады расцветут и всё само произойдет.
За 100500 писем его забанят быстрее либо хостер, либо блеклистеры.
Он в любом случае не сможет отправлять больше писем, чем осилит smtp.

И еще раз повторю, этот вопрос выходит за рамки сабжа.
 
Сверху