ПРоблема такая,есть скрипт для отправки писем юзерам по списку.
Скрипт выполняется и пишет что все письма отправлены но письма не приходят.Помогите разобраться с проблемой или может у кого есть рабочий скрипт такого же плана то скинте пожалуйста.
Вот сам скрипт:
//PHP4.x SCRIPT CREATED BY NECTO
Error_Reporting(E_ALL & ~E_NOTICE);
include("opt.ini");
$fileaddr = "addr.ini";//Файл в котором находитяться e-mail'ы желающих получать рассылку
$filemsg = "msg.ini"; //текст сообщения
if ($page == "send") {
$f = file($fileaddr);
$f2 = file($filemsg);
$msg = "";
for ($s = 0; $s < count($f2); $s++) {
$msg .= trim($f2[$s]) . "\n";
}
for ($i = $nf; $i < $nt; $i++) {
mail(trim($f[$i]), $subject, $msg, "From: $fromname <$frommail>\nContent-Type: text/plain;\n charset=windows-1251\nX-Priority: $priority");
}
$b=$i++;
echo "<p><b>Все $b сообщения отправлены</b></p>\n";
}
Else {
$f2 = file($fileaddr);
for ($e = 1; $e < ceil(count($f2) / 500 +1); $e++) {
If ($e*500 > count($f2)) {
$nt = count($f2);
}
Else {
$nt = $e*500;
}
$nf = $e*500-500;
echo "<p><a href='mail_world.php?page=send&nf=$nf&nt=$nt' target='_blank'>Отправить с $nf по $nt</a></p>\n";
}
}
Спустя 34 минуты, 19 секунд (26.02.2012 - 18:02) walerus написал(а):
Цитата |
//PHP4.x SCRIPT CREATED BY NECTO |
Это говорит о том, что скрипт был найден на просторах интернета, еще в 90х годах созданный и не Вами.
Далее, обрамляйте тегами PHP - есть соответствующая для этих целей кнопочка, потом, не все файлы предоставлены, где те, которые инклюдятся? и собственно - какие меры для решения данной проблемы предприняли именно Вы ??
Спустя 37 минут, 29 секунд (26.02.2012 - 18:39) Nubas написал(а):
Вот фаил который инклюдится: opt.ini
В addr.ini просто адреса емаил по порядку
в msg.ini просто текст
$subject = "Тема"; //Тема сообщений
$fromname = "Алексей"; //Ваше имя, от которого будет отправленно сообщение
$frommail = "admin@forum.ru"; //E-mail, с которого буде отправленно сообщение.
$priority = "1"; //Приоритет сообщения 1-max; 3-normal; 5-min
В addr.ini просто адреса емаил по порядку
в msg.ini просто текст
Спустя 43 минуты, 6 секунд (26.02.2012 - 19:22) sharki написал(а):
Nubas
Возможно не настроен SMTP сервер, у тебя должен быть свой юзер и пароль, чтобы отправлялись письма с сервера
Возможно не настроен SMTP сервер, у тебя должен быть свой юзер и пароль, чтобы отправлялись письма с сервера
Спустя 1 день, 24 минуты, 46 секунд (27.02.2012 - 19:47) Nubas написал(а):
Через простой скрипт с функцией маил письма отправляются, если в ручную и по одному.
Вопрос в том можно ли автоматизировать и отправить все письма сразу?
И почему письма с этого скрипта не приходят если скрипт выполняется и пишет что все письма отправлены?
Вопрос в том можно ли автоматизировать и отправить все письма сразу?
И почему письма с этого скрипта не приходят если скрипт выполняется и пишет что все письма отправлены?
Спустя 3 минуты, 11 секунд (27.02.2012 - 19:50) Visman написал(а):
Цитата (Nubas @ 28.02.2012 - 00:47) |
И почему письма с этого скрипта не приходят если скрипт выполняется и пишет что все письма отправлены? |
Возможно почтовые сервера банят эти письма, так как не все служебные поля присутствуют.
Спустя 6 часов, 17 минут, 23 секунды (28.02.2012 - 02:08) Nubas написал(а):
Посоветуйте что можно исправить что бы письма доходили?
Спустя 50 минут, 55 секунд (28.02.2012 - 02:59) FatCat написал(а):
Единственная прикрепленная тема в этом разделе: Почтовый класс, Взгляд на почту изнутри.
С этим почтовым классом делаю десятки рассылок в день по сотням и сотням адресов, письма отлично доходят.
С этим почтовым классом делаю десятки рассылок в день по сотням и сотням адресов, письма отлично доходят.
Спустя 1 месяц, 3 дня, 14 часов, 15 минут, 42 секунды (31.03.2012 - 17:14) Nubas написал(а):
Цитата (FatCat @ 27.02.2012 - 23:59) |
Единственная прикрепленная тема в этом разделе: Почтовый класс, Взгляд на почту изнутри. С этим почтовым классом делаю десятки рассылок в день по сотням и сотням адресов, письма отлично доходят. |
А как сделать с этим классом отправку сразу на несколько адресов?
Спустя 1 час, 20 минут, 14 секунд (31.03.2012 - 18:35) Nubas написал(а):
Вот такой ещё скрипт есть,пишет что письма отправлены но они не доходят.Кто может помочь исправить чтоб работало?
<?php
$message_in_min = 10000;
$mode = $HTTP_POST_VARS['mode'];
switch($mode){
case 'send':
if(isset($HTTP_POST_FILES['filename']['tmp_name'])){
$base_name = $HTTP_POST_FILES['filename']['name'];
$f = fopen($HTTP_POST_FILES['filename']['tmp_name'],"rb");
$attach = base64_encode(fread($f,filesize($HTTP_POST_FILES['filename']['tmp_name'])));
$isfile = 1;
}
else {$isfile = 0;}
# Проверки ################################################## ###############
$from = $HTTP_POST_VARS['from'];
if(empty($from)){echo("Неуказан адрес отправителя");exit;}
else if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$from)){echo("$from - не верный адрес отправителя"); exit;}
$fromname = @$HTTP_POST_VARS['fromname'];
if(isset($fromname)){$from = $fromname." <$from>";}
$subject = $HTTP_POST_VARS['subject'];
$subject = htmlspecialchars(stripslashes($subject));
if(!$subject){echo("Опять же, кто будет писать тему сообщения?");}
$type = $HTTP_POST_VARS['type'];
$message = $HTTP_POST_VARS['message'];
if($type == 'text'){$message = htmlspecialchars(stripslashes($message));}
if(!$message){echo("Короче, нужно что то написать. Где сообщение-то?"); exit;}
################################################## ##########################
$to_arr = file(@$HTTP_POST_FILES['to']['tmp_name']);
// print_r($to_arr);exit;
$to_arr = array_unique($to_arr);
$i = 0;
$current_message= 0;
$num_send = 0;
$num_bad = 0;
$num_error= 0;
while(isset($to_arr[$i])){
$to_arr[$i] = trim($to_arr[$i]);
if(!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i",$to_arr[$i])){
echo($to_arr[$i].' - голимый адрес, я на его отправлять ничего не собираюсь'."<br>\n");
$num_bad++;
}
else{
if(sendemail($from,$to_arr[$i],$subject,$message,$type)){
echo('Сообщение на '.$to_arr[$i]." отправлено<br>\n"); flush();
$num_send++;
}
else{$num_error++;}
}
$current_message++;
if($current_message == $message_in_min){
$current_message = 0;
echo('Отправлено '.$message_in_min.' соообщений. Пауза 60 сек.'."<br>\n");
flush();
sleep(30);
echo('<!---->'."\n");
flush();
sleep(30);
}
$i++;
}
echo('<hr size="1" color="#000000">Рассылка завершена!<br>'."\n");
echo('
<b>Отправлено : '.$num_send.'</b>
<b>Ошибок связи: '.$num_error.'</b>
<b>Плохих email: '.$num_bad.'</b>
<hr size="1" color="#000000">
');
break;
default:
echo('
<div align="center">
<h1>Рассылка писем</h1>
<form method="post" enctype="multipart/form-data">
<table align="center" border="0">
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>От кого (Имя):</strong></td>
<td><input type="Text" class="inp" name="fromname" value="" size="30"> * - Не обязательно. Например, Пупкин И.И.</td>
</tr>
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>От кого (Email):</strong></td>
<td><input type="Text" class="inp" name="from" value="" size="30"> * - Только email адрес</td>
</tr>
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>Кому:</strong></td>
<td><input type="File" name="to" class="inp" size="68"></td>
</tr>
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>Тема:</strong></td>
<td><input type="Text" class="inp" name="subject" value="" size="80"></td>
</tr>
<tr>
<td valign="top" align="right" bgcolor="#EBEBEB"><strong>Сообщение:</strong></td>
<td><textarea name="message" rows="10" cols="82" class="inp"></textarea></td>
</tr>
<tr>
<td valign="top" align="right" bgcolor="#EBEBEB"><strong>Прикрепить файл:</strong></td>
<td><input type="file" name="filename" class="inp" size="68"></td>
</tr>
<tr>
<td align="right" bgcolor="#EBEBEB"><strong>Формат</strong></td>
<td>
<table width="100%">
<tr>
<td width="20"><input class="inp" type="Radio" name="type" value="text" checked></td>
<td width="40">text </td>
<td width="20"><input class="inp" type="Radio" name="type" value="html"></td>
<td width="40">html</td>
<td align="right"><input type="Hidden" name="mode" value="send"><input type="Submit" class="inp" value="Отправить"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td bgcolor="#EBEBEB"></td>
<td><hr size="3" color="#F7F7F7"></td>
</tr>
</table>
</form>
</div>
');
break;
}
function sendemail($from,$to,$subject,$message,$type){
$bound = time().'SPB';
global $attach, $base_name, $isfile;
$sep = chr(13).chr(10); // Разделитель строк заголовка
switch($type){
case 'text':
$headers = "From: ".$from.$sep;
$headers.= "X-Priority: 3".$sep;
$headers.= "X-MSMail-Priority: Normal".$sep;
$headers.= "X-Mailer: PHP/".phpversion().$sep;
$headers.= "MIME-Version: 1.0".$sep;
$headers.= "Content-Type: multipart/mixed; boundary=\"".$bound."\"".$sep.$sep;
$body = "--$bound".$sep;
$body.= "Content-type: text/plain; charset=\"windows-1251\"".$sep;
$body.= "Content-Transfer-Encoding: 8bit".$sep.$sep;
$body.= $message.$sep;
if($isfile == 1){
$body.= "$sep$sep--$bound".$sep;
$body.= "Content-Type: application/octet-stream;";
$body.= "name=\"".basename($base_name)."\"".$sep;
$body.= "Content-Transfer-Encoding:base64".$sep;
$body.= "Content-Disposition:attachment".$sep.$sep;
$body.= $attach.$sep;
}
// $body.="$bound--".$sep.$sep;
break;
case 'html':
$headers = "From: ".$from.$sep;
$headers.= "X-Priority: 3".$sep;
$headers.= "X-MSMail-Priority: Normal".$sep;
$headers.= "X-Mailer: PHP/".phpversion().$sep;
$headers.= "MIME-Version: 1.0".$sep;
$headers.= "Content-Type: multipart/mixed; boundary=\"".$bound."\"".$sep.$sep;
$body = "--$bound".$sep;
$body.= "Content-type: text/html; charset=\"windows-1251\"".$sep;
$body.= "Content-Transfer-Encoding: 8bit".$sep.$sep;
$body.= $message.$sep;
if($isfile == 1){
$message_part = "--$boundary\n";
$message_part .= "Content-Type: application/octet-stream\n";
$message_part .= "Content-Transfer-Encoding: base64\n";
$message_part .= "Content-Disposition: attachment; filename = \"".$path."\"\n\n";
$message_part .= chunk_split(base64_encode($file))."\n";
$multipart .= $message_part."--$boundary--\n";
}
// $body.="$bound--".$sep.$sep;
break;
default:
echo('<center><b>Неверный параметр типа письма.</b></center>');
break;
}
if(mail($to,$subject,$body,$headers)){return true;}
else{return false;}
}
?>