[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт управления рассылкой
BlackTheMad
Спешно ищется сабж.
Можно даже за деньги. Только небольшие. Не больше $50.
Очень важно управление группами е-мэйлов.
Если кто-нибудь, где-нибудь, когда-нибудь видел/работал с чем-то подобным, сообщите, плиз.
Функцию mail() и работу головй не предлагать ;) Времени, к сожалению нет. А так бы написал с удовольствием.



Спустя 32 минуты, 10 секунд (6.12.2006 - 19:30) Ghost написал(а):
htmlMimeMail

Спустя 17 часов, 57 минут, 51 секунда (7.12.2006 - 13:28) BlackTheMad написал(а):
Это у тебя юмор такой? Или ты читать не умеешь? Мне кажется, что класс для отправки писем не совсем соответствует критериям поиска обозначенным выше...

Спустя 2 часа, 44 минуты, 41 секунда (7.12.2006 - 16:13) Ghost написал(а):
читать не умею, иначе после этого
QUOTE
работу головй не предлагать

моего поста бы не было

Спустя 31 минута, 56 секунд (7.12.2006 - 16:44) Leningrad00 написал(а):
<?php
if(!isset($_POST['email'])){ ?>


Для подписки на рассылку новостей:

  • введите ваш e-mail;
  • нажмите «подписаться».

<form action="subscribe.htm" method="post" >
<input type="text" name="email" maxlength="100" / >    
<input type="submit" value="Подписаться" class="reg" / >
</form >
На указанный вами адрес будет отправлено письмо с кодом активации.
$error="";
$email=strtolower($_POST['email']);
if(!preg_match("/^([a-z,0-9,-,-,_,.])+@([a-z,0-9,-,_])+(.([a-z,0-9])+)+$/",$email)){
$error.="Введен несуществующий электронный адрес: $email
";
}
$data = File ("./sub/users.txt");
# Проверка на наличие регистрации
for ($i=0;$i $dat = explode (":", $data[$i]);
if ($dat[0] == "$email")
{
$error.="На этот адрес уже произведена подписка.

";
}
}
# Проверка на ожидание регистрации
$data = File ("./sub/usersnot.txt");
for ($i=0;$i $dat = explode (":", $data[$i]);
if ($dat[0] == "$email")
{
$error.="Этот адрес ожидает активации.


Если вы уже заполняли регистрационную форму, но не получили письмо с кодом активации, вероятно, на вашем почтовом сервере высокий уровень фильтрации спама. В этом случае воспользуйтесь другим почтовым сервером.

";
}
}
if(empty($error)){
$id=rand(100000000,999999999);
$header="Content-Type: text/html; charset=windows-1251 ";
$header.="From: subscribe@DOMEN ";
$header.="Reply-To: $email";
$subject="Account activation";
$body="
<center >===============================================

Рассылка от Деда Мороза

===============================================</center >




Здравствуйте.

Ваш адрес $email был внесен в базу подписчиков на рассылку новостей Деда Мороза.

Для подтверждения подписки пройдите, пожалуйста, по ссылке:
http://DOMEN/subscribe_activate.htm?email=...l=$email&id=$id



Если вы считаете, что получили это письмо по ошибке, просто удалите его. В этом случае ваш адрес будет удален из базы подписчиков.



   С уважением.";
$sucess = mail($email, $subject, $body, $header);
if($sucess){
echo "Благодарим за регистрацию.


На указанный вами электронный адрес выслано письмо с инструкциями по активации
вашего аккаунта.";
$fid=fopen("./sub/usersnot.txt","a");
fputs($fid,$email."::".$id." ");
fclose($fid);
}
}
echo $error;
}
?>

Активация (файл subscribe_activate.htm):
if ( isset ($_GET['id']) && isset ($_GET['email']) ){
$id=$_GET['id'];
$email=$_GET['email'];
$data=file ("./sub/usersnot.txt");
for ($i=0;$i $dat = explode ("::", $data[$i]);
if ( $dat[0] == "$email" && $dat[1] == "$id "){
$datemom = date("d.m.Y, H:i");
$fp = fopen ("./sub/users.txt", "a");
fputs ($fp, "$email::$datemom ");
fclose ($fp);
$fp = fopen ("./sub/usersnot.txt","w");
for ($f=0;$f $da = explode ("::", $data[$f]);
if ($da[0] == $email){
$data[$f] = trim ("");
}
fputs ($fp, $data[$f]." ");
}
fclose ($fp);
$error="<center >Спасибо за регистрацию !</center >
";
}
}
if(empty($error)){$error="Не могу найти запись !";}
}
echo $error;
?>
В этой же директории создается папка sub с файлами users.txt и usersnot.txt. В первом валяются зарегистрированные пользователи, во втором валяются пользователи, ожидающие регистрации. Защиту изобретайте сами.
Штука, вообще говоря, хреновенькая, но простая и работает. Удаление незарегистрированных пользователей в течение суток есть вранье, удаляйте руками.

И рассылка (скрипт располагается в параллельной sub папке или перебейте пути):

Админка — Рассылки

function no_repeat($filename,$chr)
{
$z=true;
while($z){
$id=fopen($filename,"r");
$optimize=fread($id,filesize($filename));
if(!substr_count($optimize,$chr.$chr)){$z=false;break;};
$optimize=str_replace($chr.$chr,$chr,$optimize);
fclose($id);
$id=fopen($filename,"w");
fputs($id,$optimize);
fclose($id);
}
return($optimize);
}
if(!isset($_GET['send'])||($_GET['send']!="yes")){
?>
<form action="send.php?send=yes" method="post" >
<table cellpadding="5" cellspacing="0" border="1" bordercolor="#000000" bgcolor="#CCCCCC" width="85%" align="center" class="content" >
<tr >
<td width="50%" >Введите тему рассылки</td >
<td ><input type="text" size="45" name="subject" value=" Mail delivery" ></td >
</tr >
<tr >
<td colspan="2" align="center" >
Вставьте содержание рассылки:

< textarea name="message" cols="100" rows="50" ><br> </td >
</tr >
<tr ><td colspan="2" align="center" ><input type="submit" value="Разослать" ></td ></tr >
</table >
</form >
no_repeat("../sub/users.txt"," ");
no_repeat("../sub/usersnot.txt"," ");
$data=file("../sub/users.txt");
foreach($data as $value){
$dat=explode("::",$value);
if($dat[0]!=" "){$users[]=$dat[0];}
}
$header="From: subscribe@DOMEN ";
$header.="Reply-To: subscribe@DOMEN ";
$header.="Content-Type: text/html; charset=windows-1251 ";
foreach($users as $value){
$sucess[]=mail($value, $_POST['subject'],$_POST['message'],$header);
}
foreach($sucess as $value){echo $value;};
}
?>


Спустя 30 минут, 25 секунд (7.12.2006 - 17:15) md5 написал(а):
:/ а где группы?

Спустя 1 минута, 9 секунд (7.12.2006 - 17:16) BlackTheMad написал(а):
Крута.
Фсем спасибо за помощь. Даже тем, кто не умеет читать. Читать вдумчиво. Можно тренороваться, читая вслух. Тогда может доходить будет больше.
Что касается поста Leningrad'a... Вы видели когда-нибудь нормальные приложения? Хотя бы уровня phpMyAdmin'а или phpADS'a? Так вот мне нужно что-то подобное. Три скрипта я и сам в состоянии написать. Знания позволяют. Но на создание нормального приложения, которое потянет 50 000 подписчиков, разбитых на группы может потребоваться месяца полтора-два. Этого времени у меня нет. Поэтому и спросил.

Спустя 30 минут, 23 секунды (7.12.2006 - 17:46) Leningrad00 написал(а):
На создание такого потр*цензура*ется два дня, если много курить и болтать по телефону. Два дня есть у тебя?
Рули.

Спустя 1 час, 20 секунд (7.12.2006 - 18:47) Ghost написал(а):
В свою очередь огромное спасибо за ценный совет, обязательно воспользуюсь при случае :)

Спустя 21 час, 8 минут, 58 секунд (8.12.2006 - 15:56) BlackTheMad написал(а):
Всем спасибо.
Тему можно закрывать за бесперспективностью.

Спустя 1 час, 9 минут, 51 секунда (8.12.2006 - 17:06) Leningrad00 написал(а):
Гы:) Группы:)


_____________
Быстрый ответ:

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