Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

mail()

346
23 июля 2005 года
Новая папка
256 / / 24.12.2004
Нужна срочно помощь!!!!!
У меня есть страничка, которая отсылает определенным чувакам из базы письма.
Так вот, количество чувачков колеблится от 1 до 50 000. Что делать в случае 4000 - 50 000.

У меня есть такие варианты это реализовать:

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

- отсылать пачками, например по 500 человек (вроде нормальный вариант)

- кинуть отсылку на крон (облом реализовывать)

- кинуть отсылку на подпольный скрипт (типа system'ом запустить скрипт, который будет пакованами с задержкой несколько секунд отсылать письма)
2.2K
23 июля 2005 года
Web-master
113 / / 23.12.2004
Цитата:
Originally posted by Новая папка
- отсылать пачками, например по 500 человек (вроде нормальный вариант)


Я делал так, чтоб сервер не грузить..

271
23 июля 2005 года
MrXaK
721 / / 31.12.2002
а пачками здесь имеется ввиду в строке To: задавать много адресатов? или ещё что?
12K
24 июля 2005 года
RedHotPHPepper
6 / / 24.07.2005
Цитата:
Originally posted by Новая папка
Нужна срочно помощь!!!!!
У меня есть страничка, которая отсылает определенным чувакам из базы письма.
Так вот, количество чувачков колеблится от 1 до 50 000. Что делать в случае 4000 - 50 000.

У меня есть такие варианты это реализовать:

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

- отсылать пачками, например по 500 человек (вроде нормальный вариант)

- кинуть отсылку на крон (облом реализовывать)

- кинуть отсылку на подпольный скрипт (типа system'ом запустить скрипт, который будет пакованами с задержкой несколько секунд отсылать письма)



А где храняться мыльники?
Если в бд, то добавь столбец(к примеру,sent), а когда вытаскивать будешь и мылить(хотя бы те же 500 раз),ставь в этот столбец единичку,мол послали. Потом следующие пятьсот.Если есть ограничения по процессорной занятости,время от времени делай sleep()

2.2K
24 июля 2005 года
Web-master
113 / / 23.12.2004
Цитата:
Originally posted by RedHotPHPepper
А где храняться мыльники?
Если в бд, то добавь столбец(к примеру,sent), а когда вытаскивать будешь и мылить(хотя бы те же 500 раз),ставь в этот столбец единичку,мол послали. Потом следующие пятьсот.Если есть ограничения по процессорной занятости,время от времени делай sleep()


Да ну..это лишнее, просто воспользуйся статьей Постраничный вывод на PHP Вместо вывода, делай mail() далее отобразится навигация и жми след. страницу.

12K
25 июля 2005 года
RedHotPHPepper
6 / / 24.07.2005
Цитата:
Originally posted by Web-master
Да ну..это лишнее, просто воспользуйся статьей Постраничный вывод на PHP Вместо вывода, делай mail() далее отобразится навигация и жми след. страницу.


Ну или так. Есть много способов. Было бы мало, не спрашивали б...

2.2K
25 июля 2005 года
Web-master
113 / / 23.12.2004
Код:
$all=mysql_query("SELECT count(*) FROM table");
$rec=mysql_result($all,0,0);
mysql_free_result($all);

function LeftRight($records,$r_start,$URL,$inpage) {
    $str="";

    if ($records<=$inpage) return;
    if ($r_start!=0) {
        $str.="&lt;&lt ";
        $str.="<a href=$URL".($r_start-1).">&lt;</a> ";
        }
    else $str.="&lt;&lt &lt; ";

    if ($r_start==0) {$sstart=$r_start-0;$send=$r_start+10;}
    if ($r_start==1) {$sstart=$r_start-1;$send=$r_start+9;}
    if ($r_start==2) {$sstart=$r_start-2;$send=$r_start+8;}
    if ($r_start==3) {$sstart=$r_start-3;$send=$r_start+7;}
    if ($r_start==4) {$sstart=$r_start-4;$send=$r_start+6;}
    if ($r_start>=5) {$sstart=$r_start-5;$send=$r_start+5;}

    if ($send*$inpage>$records) $send=$records/$inpage;
    if ($sstart<0) $sstart=0;

    if ($records%$inpage==0) $add=0; else $add=1;

    for ($i=$sstart;$i<$send;$i++) {
        if ($i==$r_start) $str.=" ".($i+1)." - ".(intval($records/$inpage)+$add)." | ";
        else $str.="<a href=$URL".($i)."><U>".($i+1)."</U></a> |  ";
        }

    if ($r_start+(1-$add)<intval($records/$inpage)) {
        $str.=" <a href=$URL".($r_start+1).">&gt;</a>";
        $str.=" <a href=$URL".(intval($records/$inpage)-(1-$add)).">&gt;&gt;</a>";
        }
    else $str.=" &gt; &gt;&gt";
    return($str);
    }


$dmail=mysql_query("SELECT * FROM table LIMIT ".($from*500)." , 500");
while ($smail=mysql_fetch_array($dmail))
{
$mail=$smail['mail];
$headers=null;
$headers.="From: Admin <admin@domain.ru>\n";
$headers.="X-Sender: <admin@domain.ru>\n";
$headers.="X-Mailer: PHP\n";
$headers.="Reshow-Path: <admin@domain.ru>\n";
$headers.="Content-Type: text/html; charset=Windows-1251\n";
$headers.="Content-Transfer-Encoding: 8bit".chr(13).chr(10);
if (mail(strtolower($mail),"Тема","Сообщение",$headers))
{
print $mail." отправлено
";
flush()
}
sleep(1);        

}
// Пример вызова

print "
<center>Страницы : ".LeftRight($rec,$from,"sentmail.php?from=",500)."</center>";
346
26 июля 2005 года
Новая папка
256 / / 24.12.2004
Тут такая фигня приключилась.

Your message did not reach some or all of the intended recipients.

Subject:

Sent: 7/25/2005 5:31 PM

The following recipient(s) could not be reached:

'blah@yahoo.com' on 7/25/2005 5:31 PM

450 4.0.0 <blah@yahoo.com>... Your IP address has been restricted due to heavy usage. Enable SMTP authentication in your email client to send mail.

На сколько я понял, yahoo заблочил письма с того сайта в целях защиты от спама. На другие ящики письма отсылаюся прекрастно.
Что делать в таком случае? Связываться с yahoo или делать authorication в пхп???
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог