<? Error_Reporting(E_ALL & ~E_NOTICE); $filelist = "spam.txt"; $adminmail = "mail@mail.ru"; $emailheaders = "From: " . $adminmail . "\nReply-To: " . $adminmail; if (!isset($mode)) $mode = "unknown"; switch ($mode) { case "create": createList(); break; case "display": displayEntries($filelist); break; case "add": addEntry($email); break; case "edit": displayEditForm($id); break; case "doEdit": editEntry($email, $oldvalue); break; case "delete": deleteEntry($id); break; case "send": sendNews($subject, $message); break; default: if (file_exists($filelist)) { displayEntries(); displayAddEntryForm(); } } if (!file_exists($filelist)) { echo "<h2>Сделай права 777 на файл ИДИОТ!</h2>"; echo "<form name=createFile action=spam.php method=post>"; echo "<input type=submit name=mode value=create mailing list file>"; echo "</form>"; exit; } function createList() { $fp = fopen($GLOBALS["filelist"], "w"); if ($fp) { echo "<h2>Лист рассылки сделан на ура!</h2>"; echo "<b>" . $GLOBALS["filelist"] . "</b>"; echo "<meta http-equiv='Refresh' content='1; URL=spam.php'>"; exit; } else echo "Error!"; } /**************************************************************************/ // Sends news to subscribers; function sendNews($subject, $message) { $filecontents = file($GLOBALS["filelist"]); for ($i=0;$i<sizeof($filecontents);$i++) { $a = mail($filecontents[$i], $subject, stripslashes($message), $GLOBALS["emailheaders"]); if (!$a) exit; } echo "Spam sent! ;)"; echo "<meta http-equiv='Refresh' content='1; URL=spam.php'>"; exit; } // Displays the form to add emails to list; function displayAddEntryForm() { echo "<h1>Добавить мыло в лист:</h1>"; echo "<form name=addEntry action=spam.php method=get>"; echo "<input type=text name=email>"; echo "<input type=hidden name=mode value=add>"; echo "<input type=submit name=submit value=add>"; echo "</form>"; } // Adds emails to list; function addEntry($email) { $fp = fopen($GLOBALS["filelist"], "a"); $emailsize = strlen($email . "\n"); $fw = fwrite($fp, $email . "\n", $emailsize); if ($fw) { echo "<h2><div align=center>Добавлено на ура!</div></h2>"; echo "<meta http-equiv='Refresh' content='1; URL=spam.php'>"; exit; } else echo "Error!"; } // Displays emails from list; // by default it display last 10 emails; function displayEntries() { echo "Show last <a href=spam.php?limit=10>10 мылов</a> || <a href=spam.php?limit=20>20 мылов</a> || <a href=spam.php?limit=50>50 мылов</a> || <a href=spam.php?showall=>Все мылы</a><p>"; $filecontents = file($GLOBALS["filelist"]); if (isset($GLOBALS["limit"])) $limit = $GLOBALS["limit"]; if ((!isset($GLOBALS["limit"])) and (!isset($GLOBALS["showall"]))) $limit=10; if (isset($GLOBALS["showall"])) { for ($i=sizeof($filecontents)-1;$i>=0;$i--) { echo $filecontents[$i] . " <a href=spam.php?mode=edit&id=" . $filecontents[$i] . ">Редактировать</a> || <a href=spam.php?mode=delete&id=" . $filecontents[$i] . ">Удалить</a><br>"; } } elseif (isset($limit)) { $count = 1; for ($i=sizeof($filecontents)-1;$count<=$limit;$i--) { echo $filecontents[$i] . " <a href=spam.php?mode=edit&id=" . $filecontents[$i] . ">Редактировать</a> || <a href=spam.php?mode=delete&id=" . $filecontents[$i] . ">Удалить</a><br>"; $count++; } } } // Displays the form to edit an email; function displayEditForm($id) { echo "<h1>Редактировать мыло:</h1>"; echo "<form name=editForm action=spam.php method=get>"; echo "<input type=text name=email value=" . $id . ">"; echo "<input type=hidden name=oldvalue value=" . $id . ">"; echo "<input type=hidden name=mode value=doEdit>"; echo "<input type=submit name=submit value=update>"; echo "</form>"; exit; } // Edits an email and writes the updated file; function editEntry($email, $oldvalue) { $filecontents = file($GLOBALS["filelist"]); for ($i=0;$i<sizeof($filecontents);$i++) { if (chop($filecontents[$i]) == $oldvalue) { $filecontents[$i] = $email . "\n"; $fp = fopen($GLOBALS["filelist"], "w+"); for ($a=0;$a<sizeof($filecontents);$a++) { $emailsize = strlen($filecontents[$a] . "\n"); $fw = fwrite($fp, $filecontents[$a], $emailsize); } echo "<h2><div align=center>Entry changed!</div></h2>"; echo "<meta http-equiv='Refresh' content='1; URL=spam.php'>"; exit; } } } // Deletes an email and writes an updated file; function deleteEntry($id) { $filecontents = file($GLOBALS["filelist"]); for ($i=0;$i<sizeof($filecontents);$i++) { if (chop($filecontents[$i]) == $id) { $filecontents[$i] = ""; $fp = fopen($GLOBALS["filelist"], "w+"); for ($a=0;$a<sizeof($filecontents);$a++) { $emailsize = strlen($filecontents[$a]); $fw = fwrite($fp, $filecontents[$a], $emailsize); } echo "<h2><div align=center>Введённое удалено!</div></h2>"; echo "<meta http-equiv='Refresh' content='1; URL=spam.php'>"; exit; } } } ?> <h2>Текст письма, блин:</h2> <form name=sendEmail action=spam.php method=post> САБЖ:<br><input type=text name=subject><br> Сообщение:<br><textarea name=message rows=20 cols=100%></textarea><br> <input type=submit name=mode value=send> </form>
скопируйте файлы на сервер
сделайте права (cmod) 777 на файл spam.txt
добавьте нужные email-адреса в файл spam.txt (каждый в новую строку!)
отредактируйте файл spam.php:
-измените слово mail@mail.ru в строке 4 на Ваш email (он будет отображён в поле От Вашего письма рассылки)
РАССЫЛКА:
запустите скрипт spam.php в вашем броузере (например http://site.ru/spam.php)
введите в поле САБЖ тему вашего письма
введите в поте СООБЩЕНИЕ текст вашего письма
ПРИМЕЧАНИЯ:
добавлять email-адреса также можно через сам скрипт spam.php