<?php
ob_start();
if (file_exists("config.inc.php")) include("config.inc.php");
header("Cache-Control: no-store");
session_start();
if(isset($_SESSION['log']) and $_SESSION['log']==1) {
?>
<script language="JavaScript">
function checkall(form) {
for (var i=1;i<document.subscr.elements.length;i++) {
document.subscr.elements[i].checked = document.subscr.all.checked;
}
}
</script>
<?php
if (isset($_POST['process'])) {
switch ($_POST['process']) {
case "delete": {
include("head.php");
if (file_exists("emails.txt")) {
if (isset($_POST['delcheck'])) {
unlink("emails.txt");
echo "База подписчиков была удалена!";
} else echo "Вы должны подтвердить удаление базы!";
}
else echo "Базы данных подписчиков не существует!";
echo '<br><a href=javascript:history.back(-1) style="font-size:14;" class=exp>--назад--</a></font>';
break;
}
case "save_temp":
{
include ("head.php");
if (isset($_POST['send'])) {
if(isset($HTTP_POST_FILES['filename_up']) and $HTTP_POST_FILES['filename_up']!="") {
if(move_uploaded_file($HTTP_POST_FILES['filename_up']['tmp_name'], "./files/".$HTTP_POST_FILES['filename_up']['name'])) echo 'Файл загружен';
$fname=$HTTP_POST_FILES['filename_up']['name'];
}
if (isset($_POST['filename']) and $_POST['filename']!=""){
$fname=$_POST['filename'];
}
if(!isset($fname)) $fname="";
if($lettype=="html") $en="<br>"; else $en="\r\n";
include ("config.inc.php");
if($fname=="") {
$headers = "From: $sendername<$sendermail>\n";
$headers .= "Errors-To: ".$sendermail."\n";
$headers .= "X-Mailer: PHP/".phpversion()."\n";
$headers .= "X-Sender: TSB_Subscription\n";
$headers .= "Content-Type: text/".$lettype."; charset=".$charset;
$body = str_replace("\r\n",$en,$_POST['letterbody']);
} else {
echo '<br>Прикрепленный файл: '.$fname;
$file = fopen("files/".$fname, "r");
$contents = fread($file, filesize ("files/".$fname));
$encoded_attach = chunk_split(base64_encode($contents));
fclose($file);
$headers = "From: $sendername<$sendermail>\r\n";
$headers .= "Errors-To: ".$sendermail."\r\n";
$headers .= "X-Mailer: PHP / ".phpversion()."\r\n";
$headers .= "X-Sender: TSB_Subscription\r\n";
$headers .= "MIME-version: 1.0\n";
$headers .= "Content-type: multipart/mixed; boundary=\"TSB-Boundary\"\n\n";
$body = "--TSB-Boundary\nContent-Type:text/".$lettype."; charset=".$charset." \r\n";
$body .= "Content-Transfer-Encoding: 8bit\n\n";
$body .= str_replace("\r\n",$en,$_POST['letterbody'])."\n\n";
$body .= "--TSB-Boundary\n";
$body .= "Content-Type: application/octet-stream; name=\"".$fname."\"\n";
$body .= "Content-Transfer-Encoding: base64\n";
$body .= "Content-Disposition: attachment; filename=\"".$fname."\"\n\n";
$body .= "$encoded_attach\n";
}
$label = array("[name]","[mail]","[sendername]","[url]","[folder]","[id]","[code]");
$sendlet = array("Иван Петрович","[email protected]",$sendername,$senderurl,$senderfolder,"1000","1234567890");
echo '<table style="font-family:verdana;font-size:12px;border:1px dotted gray;width:510;"><tr><td>'.str_replace($label,$sendlet,str_replace("\r\n",$en,$_POST['letterbody'])).'</td></tr></table>';
echo '<br><u>Отчет о рассылке:</u><br>';
echo '<table style="font-size:10;font-family:verdana;">';
$str_mail=file("emails.txt");
for ($i=0;$i<count($str_mail);$i++) {
$emails=explode(",",$str_mail[$i]);
if($emails[6]==2) {
$orig = array($emails[2],$emails[3],$sendername,$senderurl,$senderfolder,$emails[0],$emails[7]);
echo '<tr><td>'.$emails[0]." </td><td> <b>".$emails[3]."</b></td>";
if(mail($emails[3],$sendertheme,str_replace($label,$orig,$body),$headers)) echo '<td>отослано</td></tr>'; else '<td><font color=red>ошибка</td></tr>';
}
}
echo '</table>';
} else {
$temp=fopen("letters/".$_POST['lettername'],"w");
fputs($temp,$_POST['letterbody']);
fclose($temp);
echo 'Шаблон <b>'.$_POST['lettername'].'</b> удачно сохранен!';
echo '<br><a href="action.php?act=7&letname='.$_POST['lettername'].'" style="font-size:14;" class=exp>--назад--</a></font>';
}
break;
}
}
}
if (isset($_REQUEST['process'])) {
switch ($_REQUEST['process'])
{
case "export":
{
include("head.php");
if (file_exists("emails.txt")) {
$fp = fopen ("emails.txt", "r");
# -------TheBat!--------------
$kol=0;
if ($_POST['pocht']=="1"){
$fp_new = fopen ("emails_thebat.txt", "a");
while ($sim=fgetcsv($fp, 1000, ",")) fputs($fp_new,$sim[2]." <".$sim[3].">\n");
echo "На сервере сгенерирован файл для экспорта в почтовую программу <b>TheBat!</b><br><a href=emails_thebat.txt class=exp>--загрузить--</a>";
fclose ($fp);
fclose ($fp_new);
}
#--------Outlook express-------
if ($_POST['pocht']=="0"){
$fp_new = fopen ("emails_outlook.csv", "a");
fputs ($fp_new, "Имя;Электронная почта; \n");
while ($sim= fgetcsv ($fp, 1000, ",")) fputs($fp_new,$sim[2].";".$sim[3]." \n");
echo "На сервере сгенерирован файл для экспорта в почтовую программу <b>Outlook Express</b> <br><a href=emails_outlook.csv class=exp>--загрузить--</a>";
fclose ($fp);
fclose ($fp_new);
}
#-----------Becky!-----------------
if ($_POST['pocht']=="2"){
$fp_new = fopen("emails_becky.txt", "a");
while ($sim= fgetcsv ($fp, 1000, ",")) fputs($fp_new,$sim[2].",".$sim[3]."\n");
fclose ($fp_new);
fclose ($fp);
echo "На сервере сгенерирован файл для экспорта в почтовую программу <b>Becky!</b><br><a href=emails_becky.txt class=exp>--загрузить--</a>";
}
#-----------Mazilla Mail------------
if ($_POST['pocht']=="3"){
$fp_new = fopen("emails_mazilla.ldif", "w");
while ($data= fgetcsv ($fp, 1000, ",")) fputs($fp_new, "dn: cn=$data[2],mail=$data[3]\nobjectclass: top\nobjectclass: person\nobjectclass: organizationalPerson\nobjectclass: inetOrgPerson\nobjectclass: mozillaAbPersonObsolete\ngivenName: $data[2]\ncn: $data[2]\nmail: $data[3]\nmodifytimestamp: 0Z\n\n");
echo "На сервере сгенерирован файл для экспорта в почтовую программу <b>Mazilla.</b><br><a href=emails_mazilla.ldif class=exp>--загрузить--</a>";
fclose ($fp);
fclose ($fp_new);
}
} else echo 'Базы данных подписчиков не существует!';
echo '<br><br><a href=javascript:history.back(-1) style="font-size:14;" class=exp>--назад--</a></font>';
break;
}
case "backup":
{
include("head.php");
if (file_exists("emails.txt"))
{
copy("emails.txt", "emails_backup.txt");
echo "Резервная копия создана!";
}
else echo "Базы данных подписчиков не существует!";
echo '<br><a href=javascript:history.back(-1) style="font-size:14;" class=exp>--назад--</a></font>';
break;
}
case "setup":
{
include("head.php");
$config=fopen("config.inc.php", "w");
fputs ($config,"<?php\n\$mainurl=\"".$_POST['mainurl']."\";\n\$sendermail=\"".$_POST['sendermail']."\";\n\$sendername=\"".$_POST['sendername']."\";\n\$sendertheme=\"".$_POST['sendertheme']."\";\n\$senderurl=\"".$_POST['senderurl']."\";\n\$senderfolder=\"".$_POST['senderfolder']."\";\n\$username=\"".$_POST['username']."\";\n\$password=\"".$_POST['password']."\";\n\$letterbody= <<<EOD\n\nEOD;\n?>");
fclose($config);
chmod ("config.inc.php", 0777);
echo "Скрипт установлен успешно...Спасибо за использование...";
break;
}
case "config": {
$_POST['senderfolder'] = str_replace("\\","",$_POST['senderfolder']);
if(isset($_POST['style'])) $style=1; else $style=0;
if(!isset($_POST['lettype'])) $lettype="plain"; else $lettype=$_POST['lettype'];
$config=fopen("config.inc.php", "w");
fputs ($config,"<?php\n\$mainurl=\"".$_POST['mainurl']."\";\n\$style=\"".$style."\";\n\$sendermail=\"".$_POST['sendermail']."\";\n\$sendername=\"".$_POST['sendername']."\";\n\$sendertheme=\"".$_POST['sendertheme']."\";\n\$senderurl=\"".$_POST['senderurl']."\";\n\$senderfolder=\"".$_POST['senderfolder']."\";\n\$charset=\"".$_POST['charset']."\";\n\$lettype=\"".$lettype."\";\n\$username=\"".$_POST['username']."\";\n\$password=\"".$_POST['password']."\";\n?>");
fclose($config);
Header("Location: ".$_SERVER['HTTP_REFERER']);
break;
}
case "preview": {header("Location: action.php?act=6&preview=true");break;}
case "view": {
include("head.php");
if(isset($_POST['action'])) {
switch ($_POST['action']) {
case "del": {
if (isset($_POST['check'])) {
$putfile="false";
$base=fopen("emails.txt","r");
$emails_buf=fopen("emails_buf.txt", "w");
while ($data=fgetcsv($base,5025,",")){
$str=$data[0].",".$data[1].",".$data[2].",".$data[3].",".$data[4].",".$data[5].",".$data[6].",".$data[7]."\n";
if (is_array($_POST['check'])) {
foreach ($_POST['check'] as $value) {
if ($data[0]!=$value){$putfile="true";}
else {$putfile="false";break;}
}
}
if ($putfile=="true") fputs ($emails_buf, $str);
}
fclose($base);
fclose ($emails_buf);
copy ("emails_buf.txt","emails.txt");
unlink ("emails_buf.txt");
}
break;
}
case "delbad": {
$putfile="false";
$base=fopen("emails.txt","r");
$emails_buf=fopen("emails_buf.txt", "w");
while ($data=fgetcsv($base,5025,",")){
$str=$data[0].",".$data[1].",".$data[2].",".$data[3].",".$data[4].",".$data[5].",".$data[6].",".$data[7]."\n";
if ($data[4]!=1) {fputs ($emails_buf, $str); $putfile="true";}
}
fclose($base);
fclose ($emails_buf);
copy ("emails_buf.txt","emails.txt");
unlink ("emails_buf.txt");
// if($putfile=="false") echo 'Удалять нечего - несуществующих адресов нет!'; //else echo 'Несуществующие адреса были удалены!';
break;
}
}
}
if (file_exists("emails.txt")) {
$base=fopen("emails.txt","r");
echo '<form name="subscr" action="" method="post">';
echo '<input type="hidden" name="process" value="view">';
echo '<table cellspacing=0 cellpadding=3 border=0 style="text-align:center;font-size:12;">';
echo '<tr><td>Всего: '.count(file("emails.txt")).'</td><td colspan=7 align=right><select name="action"><option value="del">Удалить выделенные<option value="delbad">Удалить несуществующие';
/* echo '<option value="send">Отослать письмо (disabled)
<option value="delbad">Удалить несуществующие (disabled)
<option value="delunsub">Удалить отписанные (disabled)';
*/ echo '</select> <input type="submit" value="ok"></td></tr>';
echo '<tr bgcolor=silver><td><input type="checkbox" name="all" onclick="checkall(this.form);"></td><td><b>ID</td><td><b>Номер</td><td><b>Адрес</td><td><b>Сервер</td><td><b>IP адрес</td><td><b>Подтверждён</td></tr>';
$num=0;
$kol = count(file("emails.txt"));
while($data=fgetcsv($base,300,",")) {
if ($data[4]==1) {echo '<tr bgcolor=#FF6464';} else {if ($data[6]==1) {echo '<tr bgcolor=#75BAFF';} elseif($data[6]==3) echo '<tr bgcolor=yellow'; else {echo '<tr bgcolor='; if($num%2==0) echo'#EBEBEB';}} echo'><td><input type="checkbox" name="check[]" value="'.$data[0].'"></td><td><b>'.$data[0].'</b></td><td>'.$data[1].'</td><td>'.$data[3].'</td><td>';if (isset($data[4])) {if ($data[4]!=1) {echo $data[4];} else echo "не существует";} else echo'Вы не запускали update.php';echo'</td><td>';if (isset($data[5])) echo $data[5]; else echo'Вы не запускали update.php'; echo '</td><td>'; if ($data[6]==1) echo "нет"; elseif ($data[6]==2) echo'да'; elseif($data[6]==3) echo 'отписан'; echo'</td></tr>';
$num++;
$kol--;
}
echo '</table>';
echo '</form>';
} else echo 'Базы данных подписчиков не существует.';
echo '<a href=javascript:history.back(-1) style="font-size:14;" class=exp>--назад--</a></font>';
break;
}
case "restore": {
include ("head.php");
if (file_exists("emails_backup.txt")) {
copy("emails_backup.txt","emails.txt");
echo 'База восстановлена из резервной копии!';
} else {
echo 'Резервная копия не существует!';
}
echo '<br><a href=javascript:history.back(-1) style="font-size:14;" class=exp>--назад--</a></font>';
break;
}
}
}
echo '<br><font style="font-size:11px;font-family:verdana;">Powered by <a href="http://tsb.mimozaf.ru" target="_blank">TSB Subscription</a> v. ';show_ver('ver');echo'</font>';
} else {require("action.php");}
ob_end_flush();
?>