Предлагаю рассмотреть варианты рассылок писем пользователям.
1. Стандартный вариант через рассылки в АЦ и планировщик задач малоэффективный, ибо 10000 пользователей будут получать почту в течение 2-х месяцев, а хотелось бы сразу.
2. Через свою почту (не бесплатную), а от хостинга. Да, можно рассылать, но глюки с уже несуществующими емейлами, ошибками прерывают отсылку, после чего приходится убирать несуществующий емейл и повторять заново. Порой это геморройно.
3. Нашел скрипт, который позволяет рассылать почту неограниченному кол-ву пользователей, но через минуту он уже выдает ошибку 504. В результате часть пользователей рассылку недополучают. В php.ini max_execution_time стоит 240. Не понимаю, почему через минуту уже вылазит ошибка?
Добрый вечер!
Предлагаю рассмотреть варианты рассылок писем пользователям.
1. Стандартный вариант через рассылки в АЦ и планировщик задач малоэффективный, ибо 10000 пользователей будут получать почту в течение 2-х месяцев, а хотелось бы сразу.
2. Через свою почту (не бесплатную), а от хостинга. Да, можно рассылать, но глюки с уже несуществующими емейлами, ошибками прерывают отсылку, после чего приходится убирать несуществующий емейл и повторять заново. Порой это геморройно.
3. Нашел скрипт, который позволяет рассылать почту неограниченному кол-ву пользователей, но через минуту он уже выдает ошибку 504. В результате часть пользователей рассылку недополучают. В php.ini max_execution_time стоит 240. Не понимаю, почему через минуту уже вылазит ошибка?
Скрипт выкладываю на всякий случай в [коде]:
<?php ob_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> <meta name="Description" content="высылай elaim из файла txt "/> <meta name="Keywords" content="массовая рассылка с файла txt"/> <meta name="Author" content=" имя, название сайта или компании твойадрес@gmail.com"/> <title> Скрипт массовой рассылки</title> <link rel="stylesheet" href="style.css" type="text/css"> </head> <?php ob_start(); $ip = $_SERVER['REMOTE_ADDR']; ?> <body bgcolor=black> <div style="width:1000px;margin:auto"> <center> <font color=white> <h2> Скрипт массовой рассылки</h2><br><br> <div style="background-color:black;color:white;width:450px;margin:autp;border:1px solid white;overflow:auto;padding:10px"> <FORM ENCTYPE="multipart/form-data" action="?" method="POST" >Файл с адресами e-mail<br> <FORM ENCTYPE="multipart/form-data" method=post> <INPUT TYPE="FILE" NAME="userfile" SIZE="50"> <br><br> <br>Текст сообщения:<br> <textarea name="opis" cols="50" rows="10"></textarea><br><br>Отправитель:<br><input type="text" name="odkovo" size="50"><br><br> temat:<br> <input type="text" name="temat" size="50"><br> <br> <INPUT TYPE="SUBMIT" VALUE="Выслать" name="wys"> </form> <?php if(isset($_POST['wys'])){ echo "<font color=green> Высланные e-mail </font></br>"; $plik =$_FILES['userfile']['tmp_name']; $fd = fopen( $plik, 'r' ); $file=$plik; function get_addresses($file) { $breaking = array(' ', ',', '>', '<', "\t", "\r", "\n"); $addr = array(); $data = explode('@', file_get_contents($file)); $n = count($data); for ($i = 1; $i < $n; $i++) { $addr[$i-1] = '@'; $begin = 0; $end = strlen($data[$i-1]) - 1; while ((!in_array($data[$i-1]{$end}, $breaking)) and ($begin <= $end)) { $addr[$i-1] = $data[$i-1]{$end} . $addr[$i-1]; $end--; } $begin = 0; $end = strlen($data[$i]) - 1; while ((!in_array($data[$i]{$begin}, $breaking)) and ($begin <= $end)) { $addr[$i-1] .= $data[$i]{$begin} ; $begin++; } } if (count($addr) == 0) { return FALSE; } else { return $addr; } } $odkovo=$_POST['odkovo']; $headers=@$headers; $headers .= 'MIME-Version: 1.0'. "\r\n"; // *5 $headers .= "Content-Type: text/html; charset=windows-1251 \r\n"; $headers .= "From: $odkovo \r\n"; $tablica = get_addresses($file); for ($i=0; $i<=count($tablica); $i++) { $temat=$_POST['temat']; $message=$_POST['opis']; $message=nl2br($message); $mail_sent = @mail($tablica[$i], "$temat", $message, $headers); } } ?> </div> </div></div><br> <?php ob_end_flush(); ?>Может подскажите куда копать?