[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Рассылка email
Гость_Дмитрий
Вот взял сайт на администрировать, во многом разобрался искоренил ошибки. Но не могу понять проблему в рассылки. Самое главное отправляю тестовое письмо все приходить отлично, но сама рассылка на все email не работает. В чем может быть причина? Рассылка работает через PHPmailer.

Вот выкидываю код самой страницы рассылки.

<?
session_start();
require_once('../inc/global_var.php');
require_once('../inc/connect.php');
require('check_session.php');
require('../inc/lib.php');

$ds_arr = mysql_fetch_array(mysql_query('select count(distinct(t.em)) as cr from
(select email as em from object where email<>
\'\'
union all
select email as em from job_list where email<>
\'\'
union all
select from_email as em from send_message where from_email<>
\'\'
) as t where t.em not in (SELECT email FROM send_ignore_list_email)'));
$count_all_email=$ds_arr['cr'];

//================================================================================================== ===================
if (isset($_POST['add_email']))//добавляем новые email адреса
{
$arr_em=explode("\r\n",$_POST['add_email']);
foreach($arr_em as $str_em)
{
//echo $str_em.'<br>';
$str_em=trim($str_em);
if ($str_em!='') mysql_query("insert into send_message (from_email) value ('".$str_em."')");
$i++;
}
header("Location: send_to_all_email.php?add_email=".$i);
}

//================================================================================================== ===================
if (isset($_GET['test_id']))//делаем тестовую рассылку на порталовский адрес
{
$ds_arr=mysql_fetch_array(mysql_query("select * from send_to_all_mess where id=".$_GET['test_id']));
$msg_text = $ds_arr['text_message'];
$to_email='info@krasnodar-today.ru';

if ($ds_arr['unsubscribe']=='yes') $msg_text=$msg_text.'<br><br><br><br><p align="center" style="font-style:italic">
Если Вы хотите отказаться от получения этой рассылки, нажмите <a href="http://'
.$g_domain.'/unsubscribe.php?email='.$to_email.'">здесь</a></p>';

$b = mail_($ds_arr['from_address'],$to_email,$ds_arr['subject'],$msg_text);
if ($b)
header("Location: send_to_all_email.php?test_send_email=success");
else
header("Location: send_to_all_email.php?test_send_email=falue");
}

//================================================================================================== ===================
if (isset($_GET['del_id']))//удаляем рассылку
{
mysql_query("delete from send_to_all_mess where id=".$_GET['del_id']);
mysql_query("delete from send_list_email where id_subscribe=".$_GET['del_id']);
header("Location: send_to_all_email.php");
}

//================================================================================================== ===================
if (isset($_POST['save_edit'])) // сохраним письмо после его изменения
{
$body=str_replace("\r\n","",$_POST['FCKeditor1']);
$body=str_replace("\n","",$body);
$body=str_replace("'","\"",$body);
$body=str_replace("\"/news_files/","\"http://".$g_domain."/news_files/",$body);//для рассылок заменяем относительный путь на полный

if (isset($_POST['unsubscribe'])) $unsubscribe='yes'; else $unsubscribe='no';
$sql_str = "update send_to_all_mess set from_address='".$_POST['from_address']."',subject='".$_POST['subject']."',
text_message='"
.$body."',status_='".$_POST['status_']."',unsubscribe='".$unsubscribe."' where id=".$_POST['edit_id'];
//echo $sql_str;
mysql_query($sql_str) or die(mysql_error());
header("Location: send_to_all_email.php");
}

//================================================================================================== ===================
if (isset($_POST['add_ignore_email'])) // добавим email в список исключений
{
$sql_str = "INSERT INTO send_ignore_list_email (email) values ('".$_POST['ignore_email']."')";
mysql_query($sql_str) or die(mysql_error());
header("Location: send_to_all_email.php?ignore_list_email");
}

//================================================================================================== ===================
if (isset($_GET['del_ignore_email'])) // удалим email из списка исключений
{
$sql_str = "delete from send_ignore_list_email where email='".$_GET['del_ignore_email']."'";
mysql_query($sql_str) or die(mysql_error());
header("Location: send_to_all_email.php?ignore_list_email");
}

//============================ГЕНЕРАЦИЯ НОВОСТНОЙ РАССЫЛКИ===============================================================
if (isset($_POST['save_add_news'])) // сформируем и сохраним письмо после его добавления
{
$body='<style type="text/css">
p, span, strong, b, div, a {font-family:tahoma;font-size:12px;}
a { text-decoration: underline; color: rgb(8, 87, 166); }
a:hover { text-decoration: none; }
#brd {border: 1px dotted rgb(204, 204, 204);}
</style>
<p>Новости '
.$g_gorod_2.' от '.date("d.m.Y").'</p><br>
<a href="http://'
.$g_domain.'"><img height="47" border="0" width="280" alt="" src="http://'.$g_domain.'/img/'.$g_gorod_4.'_logo_email.jpg" /></a>
<br><br><br>
<table cellspacing="5" cellpadding="5" width="100%" id="brd">
<tbody>'
;
$arr=explode("|", $_POST['sel_id_news']);
$n=1;
for ($i=0;$i<count($arr)-1;$i++)
{
$ds_arr = mysql_fetch_assoc(mysql_query("SELECT * FROM news_list where id_news=".$arr[$i]));
if ($n==1) {$body.='<tr>';}
$body.='<td width="50%" valign="top" id="brd">
<a target="_blank" href="http://'
.$g_domain.'/news/news_full.php?id_news='.$ds_arr['id_news'].'">
<img border="0" src="http://'
.$g_domain.'/news/news_files/image_pict/'.$ds_arr['id_news'].'.jpg" /><br><br>
<b>'
.str_replace("'","\"",$ds_arr['caption_news']).'</b>
</a><br><br>
</td>'
;
$n++;
if ($n==3) {$body.='</tr>';$n=1;}
}

$body.='</tbody></table><br>
<p>С уважением, Администрация городского портала <a href="http://'
.$g_domain.'">http://'.$g_domain.'/</a><br />
г. '
.$g_gorod_1.'<br />
info@krasnodar-today.ru</p>'
;

if (isset($_POST['unsubscribe'])) $unsubscribe='yes'; else $unsubscribe='no';
$sql_str = "INSERT INTO send_to_all_mess(date_create,from_address,subject,text_message,count_email,status_,unsubscribe)
VALUES (NOW(),
'"
.$_POST['from_address']."',
'"
.$_POST['subject']."',
'"
.$body."',
"
.$count_all_email.",
'"
.$_POST['status_']."',
'"
.$unsubscribe."')";
//echo $sql_str;
mysql_query($sql_str) or die(mysql_error());
$insert_id=mysql_insert_id();
$sql_str = "INSERT INTO send_list_email(email,id_subscribe)
select distinct(t.em),"
.$insert_id." from
(select email as em from object where email<>''
union all
select email as em from job_list where email<>''
union all
select from_email as em from send_message where from_email<>''
) as t where t.em not in (SELECT email FROM send_ignore_list_email)"
;
mysql_query($sql_str) or die(mysql_error());
header("Location: send_to_all_email.php");
}

//================================================================================================== ===================
if (isset($_POST['save_add'])) // сохраним письмо после его добавления
{
$body=str_replace("\r\n","",$_POST['FCKeditor1']);
$body=str_replace("\n","",$body);
$body=str_replace("'","\"",$body);
$body=str_replace("\"/news_files/","\"http://".$g_domain."/news_files/",$body);//для рассылок заменяем относительный путь на полный
$body='<style>p,span,strong,b,div,a {font-family:tahoma; font-size:12px;} A{text-decoration: underline;color: #0857A6; }
A:hover {text-decoration: none;}</style>'
.$body;


if (isset($_POST['unsubscribe'])) $unsubscribe='yes'; else $unsubscribe='no';
$sql_str = "INSERT INTO send_to_all_mess(date_create,from_address,subject,text_message,count_email,status_,unsubscribe)
VALUES (NOW(),
'"
.$_POST['from_address']."',
'"
.$_POST['subject']."',
'"
.$body."',
"
.$count_all_email.",
'"
.$_POST['status_']."',
'"
.$unsubscribe."')";
//echo $sql_str;
mysql_query($sql_str) or die(mysql_error());
$insert_id=mysql_insert_id();
$sql_str = "INSERT INTO send_list_email(email,id_subscribe)
select distinct(t.em),"
.$insert_id." from
(select email as em from object where email<>''
union all
select email as em from job_list where email<>''
union all
select from_email as em from send_message where from_email<>''
) as t where t.em not in (SELECT email FROM send_ignore_list_email)"
;
mysql_query($sql_str) or die(mysql_error());
header("Location: send_to_all_email.php");
}


?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>
Массовая рассылка email всем пользователям</TITLE>
<META
http-equiv=content-type content="text/html; charset=windows-1251">
<link
rel="stylesheet" href="../style.css" type="text/css">
</HEAD>
<style>

.head_vip
{
border-bottom:1px solid #E0E0E0;
font-size:10px;
}
</style>
<script
type="text/javascript" src="fckeditor/fckeditor.js"></script>
<script
type="text/javascript" src="../inc/JsHttpRequest/JsHttpRequest.js"></script>

<script
language="javascript">
function
check_data()
{
subject=form1.subject.value;
from_address=form1.from_address.value;
if (subject=='') {alert('Тема должна быть заполнена!'); return false;}
if (from_address=='') {alert('Адрес отправителя должен быть заполнен!'); return false;}
}


function check_data_news()
{
subject=form1.subject.value;
from_address=form1.from_address.value;
if (subject=='') {alert('Тема должна быть заполнена!'); return false;}
if (from_address=='') {alert('Адрес отправителя должен быть заполнен!'); return false;}
sel_id=document.getElementById('sel_id_news').value;
if (sel_id=='')
{
alert('Не выбрана ни одна новость!'); return false;
}
else
{
pattern='|';
var pos = sel_id.indexOf(pattern);
for (var count = 0; pos != -1; count++)
pos = sel_id.indexOf(pattern, pos + pattern.length);
if ((count%2)==1) {alert('Количество отобранных новостей должно быть четным!'); return false;}
}
}


</script>
<BODY
leftMargin="0" topMargin="0" marginheight="0" marginwidth="0">
<TABLE
height="100%" cellSpacing=0 cellPadding=0 width="100%" border="0" class="admin_color1">
<TBODY>
<TR><TD><?
require ('admin_head.php'); ?></TD></TR>
<TR
height="100%">
<TD
width="100%" valign="top">
<TABLE
cellSpacing="0" cellPadding="0" width="100%">
<TBODY><TR>
<TD
valign=top height="100%"><? require ('admin_menu.php'); ?></TD>

<TD
class="admin_td" valign=top width="100%" height="100%" >

<?

if (isset($_GET['edit_id']))//покажем форму редактирования письма
{
$ds = mysql_query ("SELECT * FROM send_to_all_mess where id=".$_GET['edit_id']) or die(mysql_error());
$ds_arr = mysql_fetch_assoc($ds);
?>
<form
action="send_to_all_email.php" method="POST" style="margin:0px;" name="form1" onSubmit="return check_data();">
<span
style="font-size:12px;font-weight:bold; color:#000099;"><img src="../img/edit.png" align="absmiddle"> Редактирование письма рассылки</span>
   <a href="send_to_all_email.php" style="font-size:12px;">Вернуться к списку писем рассылки</a>
<br><br>
<table
width="100%" border="0" cellpadding="2" cellspacing="0">
<tr><td
width="100">Адрес отправителя</td>
<td><input
type="text" name="from_address" maxlength="100" style="width:200px;" title="Адрес отправителя" value="<? echo $ds_arr['from_address'];?>"> 
<input type="checkbox" name="unsubscribe" <? if ($ds_arr['unsubscribe']=='yes') echo 'checked="checked"';?>>Позволить адресату отписаться от рассылки</td>
</tr>
<tr><td
width="100">Тема сообщения</td>
<td><input
type="text" name="subject" maxlength="300" style="width:100%" title="Тема" value="<? echo $ds_arr['subject'];?>"></td>
</tr>
<tr><td
colspan="2">
<script
type="text/javascript">
var
sBasePath = 'http://<? echo $g_domain; ?>/admin/fckeditor/';
var oFCKeditor = new FCKeditor( 'FCKeditor1' );
oFCKeditor.BasePath = sBasePath ;
oFCKeditor.Height = 600 ;
oFCKeditor.Value = '<? $body=str_replace("\r\n","",$ds_arr['text_message']);$body=str_replace("\n","",$body);$body=str_replace("'","\"",$body);echo $body;?> ';
oFCKeditor.Create() ;
</script>

</td></tr>
<tr><td>
Статус рассылки</td>
<td><select
name="status_" size="1" title="Статус">
<option
value="stop" <? if ( $ds_arr['status_']=='stop') echo 'selected="selected"';?>>Остановлено</option>
<option
value="run" <? if ( $ds_arr['status_']=='run') echo 'selected="selected"'; if ( $ds_arr['status_']=='end') echo 'disabled="disabled"';?> >Выполняется</option>
<option
value="end" <? if ( $ds_arr['status_']=='end') echo 'selected="selected"';?> disabled="disabled">Завершено</option>
</select>
</td>
</tr>
</table>
<br>
<input
type="hidden" name="edit_id" value="<? echo $_GET['edit_id'];?>">
<input
type="submit" class="submit" name="save_edit" value="Изменить">
<input
type="submit" class="submit" name="cancel" value="Отмена"/>
</form>
<?

}
else if (isset($_GET['add_news']))//покажем форму для довления рассылки новостей
{
?>
<form
action="send_to_all_email.php" method="POST" style="margin:0px;" name="form1" onSubmit="return check_data_news();">
<span
style="font-size:12px;font-weight:bold; color:#000099;"><img src="../img/add.png" align="absmiddle"> Добавление письма рассылки новостей</span>
   <a href="send_to_all_email.php" style="font-size:12px;">Вернуться к списку писем рассылки</a>
<br><br>
<table
width="100%" border="0" cellpadding="2" cellspacing="0">
<tr><td
width="100">Адрес отправителя</td>
<td><input
type="text" name="from_address" maxlength="100" style="width:200px;" title="Адрес отправителя" value="<? echo $g_domain; ?>"> 
<input type="checkbox" name="unsubscribe" checked="checked">Позволить адресату отписаться от рассылки</td>
</tr>
<tr><td
width="100">Тема сообщения</td>
<td><input
type="text" name="subject" maxlength="300" style="width:100%" title="Тема" value="Главные новости недели <? echo $g_gorod_2;?> от <? echo date("d.m.Y");?>"></td>
</tr>
<tr><td
colspan="2" style="color:#D9090E;font-size:11px;font-weight:bold;">В письме будет указана сегодняшняя дата рассылки! Изменить ее можно в режиме редактирования</td></tr>
<tr><td
colspan="2">
<table
cellpadding="0" cellspacing="0" border="0" id="rn">
<tr>
<td
width="50%"><span id="sn">Выбранные новости для рассылки <span id="count_sel_news"></span></span></td>
<td
width="10">  </td>
<td
width="50%"><span id="an">Все новости</span></td>
</tr>
<tr>
<td
id="news_sel" valign="top"> </td>
<td
width="10">  </td>
<td
id="news_all" valign="top"><script language="javascript">getallnews(0,0);</script></td>
</tr>
</table>
<input
type="hidden" value="" name="sel_id_news" id="sel_id_news">
</td></tr>
<tr><td>
Статус рассылки</td>
<td><select
name="status_" size="1" title="Статус">
<option
value="stop" selected="selected">Не выполняется</option>
<option
value="run">Выполняется</option>
</select>
</td>
</tr>
</table>
<br>
<input
type="submit" class="submit" name="save_add_news" value="Добавить">
<input
type="submit" class="submit" name="cancel" value="Отмена"/>
</form>
<?

}


else if (isset($_GET['add']))//покажем форму добавления письма
{
?>
<form
action="send_to_all_email.php" method="POST" style="margin:0px;" name="form1" onSubmit="return check_data();">
<span
style="font-size:12px;font-weight:bold; color:#000099;"><img src="../img/add.png" align="absmiddle"> Добавление письма рассылки</span>
   <a href="send_to_all_email.php" style="font-size:12px;">Вернуться к списку писем рассылки</a>
<br><br>
<table
width="100%" border="0" cellpadding="2" cellspacing="0">
<tr><td
width="100">Адрес отправителя</td>
<td><input
type="text" name="from_address" maxlength="100" style="width:200px;" title="Адрес отправителя" value="<? echo $g_domain; ?>"> 
<input type="checkbox" name="unsubscribe" checked="checked">Позволить адресату отписаться от рассылки</td>
</tr>
<tr><td
width="100">Тема сообщения</td>
<td><input
type="text" name="subject" maxlength="300" style="width:100%" title="Тема"></td>
</tr>
<tr><td
colspan="2">
<script
type="text/javascript">
var
sBasePath = 'http://<? echo $g_domain; ?>/admin/fckeditor/';
var oFCKeditor = new FCKeditor( 'FCKeditor1' );
oFCKeditor.BasePath = sBasePath ;
oFCKeditor.Height = 600 ;
oFCKeditor.Value = '';
oFCKeditor.Create() ;
</script>

</td></tr>
<tr><td>
Статус рассылки</td>
<td><select
name="status_" size="1" title="Статус">
<option
value="stop" selected="selected">Остановлено</option>
<option
value="run">Выполняется</option>
</select>
</td>
</tr>
</table>
<br>
<input
type="submit" class="submit" name="save_add" value="Добавить">
<input
type="submit" class="submit" name="cancel" value="Отмена"/>
</form>
<?

}
else if (isset($_GET['ignore_list_email']))//покажем список исключенных email
{
?>
<span
style="font-size:12px;font-weight:bold; color:#000099;"><img src="../img/ignore.png" align="absmiddle"> Cписок исключенных из рассылки email</span>
   <a href="send_to_all_email.php" style="font-size:12px;">Вернуться к списку писем рассылки</a>
<br><br>
<table
width="100%" border="0" cellspacing="2" cellpadding="1" class="GroupBox">
<tr><td>

<span
style="font-size:9px;color:#FF0000">Эти исключения будут работать только для новых рассылок, для уже созданных/запущеных работать не будет!</span>

</td>
</tr>
<tr><td>
<form
name="form" method="POST" action="send_to_all_email.php">
введите email<br><input name="ignore_email" type="text" size="47" maxlength="30">
<input
type="submit" name="add_ignore_email" value="Добавить" class="submit">
</form>
</td><tr>
</table>
<br>
<?

$ds = mysql_query ("SELECT email FROM send_ignore_list_email order by email");
$cr=mysql_num_rows($ds);
echo '<b>Всего исключенных: '.$cr.'</b><br><br>';
while ($ds_arr = mysql_fetch_array($ds))
{
echo '<a href="send_to_all_email.php?del_ignore_email='.$ds_arr['email'].'"><img hspace="2" src="../img/del.png" border="0"></a> '.$ds_arr['email'].'<br>';
}
}

else //выводим список писем для рассылки
{
if (isset($_GET['test_send_email']))
if ($_GET['test_send_email']=='success')
echo '<p class="warning">Тестовое письмо успешно отправлено!</p>';
else
echo '<p class="warning">Тестовое письмо не удалось отправить!</p>';
if (isset($_GET['add_email'])) echo '<p class="warning">Добавлено '.$_GET['add_email'].' email адресов!</p>';
echo '<p class="warning">'.$err.'</p>'; ?>
<b>
Кол-во email адресов для рассылки: <? echo $count_all_email;?></b>
<div
style="float:left; padding:5px;"><img hspace="2" src="../img/add.png" border="0"><a href="send_to_all_email.php?add_news">Создать рассылку новостей</a></div>
<div
style="float:left; padding:5px;"><img hspace="2" src="../img/add.png" border="0"><a href="send_to_all_email.php?add">Создать рассылку общую</a></div>
<div
style="float:left; padding:5px;"><img hspace="2" src="../img/ignore.png" border="0"><a href="send_to_all_email.php?ignore_list_email">Список исключеных email</a></div>
<div
style="float:left; padding:5px;"><img hspace="2" src="../img/add_email.gif" border="0"><a href="#" onClick="document.getElementById('div_add_email').style.display='block';return false;">Добавить в базу email адреса</a></div>

<div
id="div_add_email" style="display:none;position:absolute; top:42px; left:689px; background-color:#EFD5FB; border:3px solid #B99AC8; width:300px; height:590px; padding:5px;">
<img
hspace="2" src="../img/add_email.gif" border="0">Добавить в базу email адреса<br><br>
<b
style="color:#D52500">* каждый email должен быть на новой строке<br>* не должно быть лишних символов</b>
<form
style="margin:0px;" method="post">
<textarea
name="add_email" style="width:100%; height:500px; padding:3px;"></textarea><br><br>
<input
type="submit" name="add_email_btn" class="submit" value="Добавить">
<input
type="button" class="submit" value="Отмена" onClick="document.getElementById('div_add_email').style.display='none';">
</form>
</div>

<br><br><br><br>
<?

$field_sort='date_create'; $sort_dir='desc'; $sd='asc';
if (isset($_GET['asc'])) {$field_sort=$_GET['asc']; $sort_dir='asc'; $sd='desc';}
if (isset($_GET['desc'])) {$field_sort=$_GET['desc']; $sort_dir='desc';$sd='asc';}

$obj_count_all=$cur_count;
$obj_count_on_page=30;
$page_count=ceil($obj_count_all/$obj_count_on_page);

if (is_num($_GET['page'],1) && ($_GET['page']<=$page_count)) $page=$_GET['page']; else $page=1;
if ($page>1) $start_row=($page*$obj_count_on_page)-$obj_count_on_page; else $start_row=0;

$ds = mysql_query ("select id,date_create,date_end,text_message,subject,concat(count_email,'/',count_send_email) as sended,
case status_ when 'run' then 'Выполняется' when 'end' then 'Завершено' else 'Остановлено' end as status
from send_to_all_mess ORDER BY "
.$field_sort." ".$sort_dir." limit ".$start_row.",".$obj_count_on_page);
$cr = mysql_num_rows ($ds);
if ($cr==0) echo "<br><b>Нет записей</b>";

if ($cr>0)
{
?>
<div
style="font-size:8px;">
<table
cellpadding="2" cellspacing="0" width="100%" style="border: 1px solid #E0E0E0;">
<tr
class="admin_color2">
<td
class="head_vip" width="10">Операции</td>
<td
class="head_vip" width="90"><a href="send_to_all_email.php?<? if ($field_sort=='date_create') echo $sd;else echo 'asc';?>=date_create">Дата создания</a></td>
<td
class="head_vip" width="90"><a href="send_to_all_email.php?<? if ($field_sort=='date_end') echo $sd;else echo 'asc';?>=date_end">Дата завершения</a></td>
<td
class="head_vip"><a href="send_to_all_email.php?<? if ($field_sort=='subject') echo $sd;else echo 'asc';?>=subject">Тема</a></td>
<td
class="head_vip" width="150"><a href="send_to_all_email.php?<? if ($field_sort=='sended') echo $sd;else echo 'asc';?>=sended">Всего email/отправленных email</a></td>
<td
class="head_vip" width="20"><a href="send_to_all_email.php?<? if ($field_sort=='status') echo $sd;else echo 'asc';?>=status">Статус</a></td>
</tr>

<?

$i=1;
while ($ds_arr = mysql_fetch_array($ds))
{
if ($i<$cr) $st='style="border-bottom:1px dashed #E0E0E0;font-size:10px;"'; else $st='style="font-size:10px;"';
echo '<tr>';
echo '<td '.$st.' valign="top">';
echo '<a href="send_to_all_email.php?test_id='.$ds_arr['id'].'" title="Сделать тест, отправить письмо на info@krasnodar-today.ru"><img hspace="2" src="../img/sendemail.gif" border="0"></a>';
echo '<a href="send_to_all_email.php?edit_id='.$ds_arr['id'].'" title="Редактировать письмо"><img hspace="2" src="../img/edit.png" border="0"></a>';
echo '<a href="send_to_all_email.php?del_id='.$ds_arr['id'].'" title="Удалить письмо" onClick="return confirm(\'Вы уверены?\');"><img hspace="2" src="../img/del.png" border="0"></a>';
echo '</td>';
echo '<td '.$st.' valign="top">'.date("d.m.y H:i:s", strtotime($ds_arr['date_create'])).'</td>';
if ($ds_arr['date_end']!='') $de=date("d.m.y H:i:s", strtotime($ds_arr['date_end'])); else $de='';
echo '<td '.$st.' valign="top">'.$de.'</td>';
echo '<td '.$st.' valign="top">'.$ds_arr['subject'].'</td>';
echo '<td '.$st.' valign="top">'.$ds_arr['sended'].'</td>';
echo '<td '.$st.' valign="top">'.$ds_arr['status'].'</td>';
echo '</tr>';
$i++;
}
?>

</table>
</div>
<?


if ($obj_count_all>$obj_count_on_page) //выводим страницы
{
echo '<table width="100%" cellpadding="2" cellspacing="0"><tr><td class="number_pages" align="center">';
$last_page=(ceil($page/10))*10;
$first_page=$last_page-9;

echo 'страницы  ';
if ($page_count<=$last_page) $last_page=$page_count;
if ($page>10) echo '<a href="send_to_all_email.php?page='.($first_page-1).'" '.$font_style.'><<</a>  ';

for ($i=$first_page;$i<=$last_page;$i++)
{
if ($i==$page) $font_style=' style="background-color:#FFD493;"'; else $font_style='';
echo '<a href="send_to_all_email.php?page='.$i.'" '.$font_style.'>'.$i.'</a>  ';
}
if($page_count>$last_page) echo'<a href="send_to_all_email.php?page='.($last_page+1).'">>></a>';
echo'</td></tr></table>';
}
}

}

?>


</TD>
</TR></TBODY></TABLE></TD>
</TR>
</TBODY>
</TABLE>
</BODY>
</HTML>



А вот свзь с Phpmailer

[code]
function mail_($From, $to, $subject, $body)
{
require_once('class.phpmailer.php');

$mailer = new PHPMailer;
$mailer->SetLanguage('en', $inc_dir);
$mailer->isHTML(true); // С понтом дела отправляем html-письмо
$mailer->CharSet = 'windows-1251'; // В какой кодировке
$mailer->From = $From; // Что мы хотим видеть в поле From нашего письма
$mailer->FromName = "";
$mailer->Sender = '******@yandex.ru';
$mailer->Host = 'smtp.yandex.ru'; // Наш smtp-сервер
$mailer->Mailer = 'smtp'; // Как отсылать. Вариант по умолчанию - 'mail'
$mailer->Username = '******'; // Логин для авторизации на smtp-сервере
$mailer->Password = '*******'; // Пароль для авторизации
$mailer->SMTPAuth = true; // Будем авторизоваться? Будем!

$mailer->Body = $body; // html-код письма
$mailer->AltBody = $body; // plain-text версия
$mailer->Subject = $subject;
$mailer->AddAddress($to);
$res = $mailer->Send();
$mailer->ClearAddresses();
return $res;
}

function mail_subscribe($From, $to, $subject, $body, $Username)
{
require_once('class.phpmailer.php');

$mailer = new PHPMailer;
$mailer->SetLanguage('en', $inc_dir);
$mailer->isHTML(true); // С понтом дела отправляем html-письмо
$mailer->CharSet = 'windows-1251'; // В какой кодировке
$mailer->From = $From; // Что мы хотим видеть в поле From нашего письма
$mailer->FromName = "";
$mailer->Sender = $Username;
$mailer->Host = 'smtp.yandex.ru'; // Наш smtp-сервер
$mailer->Mailer = 'smtp'; // Как отсылать. Вариант по умолчанию - 'mail'
$mailer->Username = $Username; // Логин для авторизации на smtp-сервере
$mailer->Password = '********'; // Пароль для авторизации
$mailer->SMTPAuth = true; // Будем авторизоваться? Будем!

$mailer->Body = $body; // html-код письма
$mailer->AltBody = $body; // plain-text версия
$mailer->Subject = $subject;
$mailer->AddAddress($to);
$res = $mailer->Send();
$mailer->ClearAddresses();
return $res;
}

//передается номер баннера, а возвращает htmlкод баннера
function show_banner($adv_place)
{
$ds_arr = mysql_fetch_array(mysql_query("select adv_code from adv_list where adv_place='".$adv_place."'"));
echo $ds_arr['adv_code'];
}




?>

Помогите.



Спустя 9 минут, 45 секунд (24.05.2011 - 19:01) Mirexzpalich написал(а):
А ваш хост позволяет "спамить"?

Спустя 4 минуты, 27 секунд (24.05.2011 - 19:06) Игорь_Vasinsky написал(а):
ты весёлы парень!

Спустя 3 часа, 13 минут, 8 секунд (24.05.2011 - 22:19) Rodimon написал(а):
Цитата (Mirexzpalich @ 24.05.2011 - 16:01)
А ваш хост позволяет "спамить"?

Как об этом узнать?

Спустя 4 минуты, 26 секунд (24.05.2011 - 22:23) Игорь_Vasinsky написал(а):
отправь тихонько письма не на всю свою миллионную базу - а на 3-5 емайлов wink.gif

Спустя 4 минуты, 57 секунд (24.05.2011 - 22:28) Rodimon написал(а):
Цитата (Игорь_Vasinsky @ 24.05.2011 - 19:23)
отправь тихонько письма не на всю свою миллионную базу - а на 3-5 емайлов wink.gif

Я отправляю на одно email все уходит прекрасно, все как надо. Рассылкой не занимался. и не понимаю где загвоздка? huh.gif

Спустя 4 минуты, 45 секунд (24.05.2011 - 22:33) Игорь_Vasinsky написал(а):
вот честно - мне лень десятки строк ивоего кода изучать wink.gif
нотисы есть?
суппорт что говорит - можно с их хоста мылить по чём зря?

Спустя 1 час, 58 минут, 48 секунд (25.05.2011 - 00:32) inpost написал(а):
Rodimon
Весь скрипт? Неее, даже читать не буду. Зато практика показывает, если ты циклом всё сделаешь, то отправится первое письмо, на втором сервер даст отбой, для массовой рассылки надо паузу ставить между функцией mail(); Иногда в 1 сек, иногда в 0,1 сек

Спустя 8 часов, 17 минут, 13 секунд (25.05.2011 - 08:49) Rodimon написал(а):
Цитата (Игорь_Vasinsky @ 24.05.2011 - 19:33)
вот честно - мне лень десятки строк ивоего кода изучать wink.gif
нотисы есть?
суппорт что говорит - можно с их хоста мылить по чём зря?




Суппорт конкретного ответа не дает, на мой вопрос. И сказали не помогают в настройке скрипта!
Не знаю что такое нотисы.

Спустя 3 минуты, 8 секунд (25.05.2011 - 08:52) Rodimon написал(а):
Цитата (inpost @ 24.05.2011 - 21:32)
Rodimon
Весь скрипт? Неее, даже читать не буду. Зато практика показывает, если ты циклом всё сделаешь, то отправится первое письмо, на втором сервер даст отбой, для массовой рассылки надо паузу ставить между функцией mail(); Иногда в 1 сек, иногда в 0,1 сек

Кстати возможно в этом и есть загвозка! А поподробней можно?

Спустя 41 минута, 15 секунд (25.05.2011 - 09:33) Игорь_Vasinsky написал(а):
пчитай про sleep() php

Спустя 1 час, 41 минута, 28 секунд (25.05.2011 - 11:15) ИНСИ написал(а):
Я так понимаю, что автор темы не сможете сделать сам такой скрипт, но обычно делают так:

1. Имеется 500 email-ов
2. Имеем скрипт, который рассылает письма
3. Рассылаем письма по 10-20 писем, затем sleep на пару секунд и так дальше.

Обычно на такой алгоритм не жалуется хостинг smile.gif А по теме, то да, видать хостер не позволяет + могут быть ограничения, допустим в час можно разослать всего 500-1000 или более писем, зависит от хостера и его тарифов.

Спустя 6 часов, 6 минут, 55 секунд (25.05.2011 - 17:22) Rodimon написал(а):
Цитата (velbox @ 25.05.2011 - 08:15)

3. Рассылаем письма по 10-20 писем, затем sleep на пару секунд и так дальше.


Ребята благодарен очень сильно вам, но еще такой момент:

Скрипты я писать естественно не умею. Подскажите где в данном коде мне поставить метод sleep () и рассылку по 20 писем?

Я так понимаю это здесь?

</td></tr>
<tr><td>
Статус рассылки</td>
<td><select
name="status_" size="1" title="Статус">
<option
value="stop" <? if ( $ds_arr['status_']=='stop') echo 'selected="selected"';?>>Остановлено</option>
<option
value="run" <? if ( $ds_arr['status_']=='run') sleep(3) echo 'selected="selected"'; if ( $ds_arr['status_']=='end') echo 'disabled="disabled"';?> >Выполняется</option>
<option
value="end" <? if ( $ds_arr['status_']=='end') echo 'selected="selected"';?> disabled="disabled">Завершено</option>
</select>
</td>


Спустя 12 минут, 58 секунд (25.05.2011 - 17:35) Rodimon написал(а):
Скорее всего надо здесь прописать?


[code]
function mail_($From, $to, $subject, $body)
{
require_once('class.phpmailer.php');

$mailer = new PHPMailer;
$mailer->SetLanguage('en', $inc_dir);
$mailer->isHTML(true); // С понтом дела отправляем html-письмо
$mailer->CharSet = 'windows-1251'; // В какой кодировке
$mailer->From = $From; // Что мы хотим видеть в поле From нашего письма
$mailer->FromName = "";
$mailer->Sender = '******@yandex.ru';
$mailer->Host = 'smtp.yandex.ru'; // Наш smtp-сервер
$mailer->Mailer = 'smtp'; // Как отсылать. Вариант по умолчанию - 'mail'
$mailer->Username = '******'; // Логин для авторизации на smtp-сервере
$mailer->Password = '*******'; // Пароль для авторизации
$mailer->SMTPAuth = true; // Будем авторизоваться? Будем!

$mailer->Body = $body; // html-код письма
$mailer->AltBody = $body; // plain-text версия
$mailer->Subject = $subject;
$mailer->AddAddress($to);
$res = $mailer->Send();
$mailer->ClearAddresses();
return $res;
}

function mail_subscribe($From, $to, $subject, $body, $Username)
{
require_once('class.phpmailer.php');

$mailer = new PHPMailer;
$mailer->SetLanguage('en', $inc_dir);
$mailer->isHTML(true); // С понтом дела отправляем html-письмо
$mailer->CharSet = 'windows-1251'; // В какой кодировке
$mailer->From = $From; // Что мы хотим видеть в поле From нашего письма
$mailer->FromName = "";
$mailer->Sender = $Username;
$mailer->Host = 'smtp.yandex.ru'; // Наш smtp-сервер
$mailer->Mailer = 'smtp'; // Как отсылать. Вариант по умолчанию - 'mail'
$mailer->Username = $Username; // Логин для авторизации на smtp-сервере
$mailer->Password = '********'; // Пароль для авторизации
$mailer->SMTPAuth = true; // Будем авторизоваться? Будем!

$mailer->Body = $body; // html-код письма
$mailer->AltBody = $body; // plain-text версия
$mailer->Subject = $subject;
$mailer->AddAddress($to);
$res = $mailer->Send();
$mailer->ClearAddresses();
return $res;
}

//передается номер баннера, а возвращает htmlкод баннера
function show_banner($adv_place)
{
$ds_arr = mysql_fetch_array(mysql_query("select adv_code from adv_list where adv_place='".$adv_place."'"));
echo $ds_arr['adv_code'];
}




?>

Спустя 8 минут, 25 секунд (25.05.2011 - 17:43) Snus написал(а):
Используй отложенную отправку. Уже несколько раз на форуме писал о такой методе.

Спустя 4 часа, 10 минут, 16 секунд (25.05.2011 - 21:53) ИНСИ написал(а):
Про sleep, как пример, то вот так:

$sizeSendMail = 15; // количество писем за раз
for($i = 0; $i <= $100; ++$i) {
if($i == $sizeSendMail) {
sleep(10); // интервал 10 секунд
$i = 0;
}

// тут уже код, который отправляет письма
sendMail(); // запускаем функцию отправки письма
}
Быстрый ответ:

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