Хостинг

IPhoster
 

Информация

 
 

Опрос

С каких Файлообменников вам удобнее качать?

letitbit.net
depositfiles.com
vip-file.com
другие...
 
 

Своя рассылка на PHP

Новость опубликовал: administrator ( Добавлено : (17-08-2010, 22:09) )  


В интернете есть много бесплатных сервисов. В том числе и услуги по рассылке писем подписчикам. Некоторые из них очень хороши. Но раз уж они бесплатны, значит тут же в письмах появляется реклама. Да и немалые формы для подписки с логотипом предоставителя услуг многих не устравивают.

Так почему бы не написать простенький движок для своей рассылки и отсылать письма своими силами?

Файл engine/modules/mymod.php не найден, его загрузка невозможна.

 Комментариев: (84)  Просмотров: 3304

Давайте разберемся, что нам для этого потребуется. Для того чтоб посетители имели возможность подписаться на вашу рассылку необходима форма для ввода адреса електронной почты. После ввода адрес надо запомнить. Давайте адреса будем сохранять в файле maillist.txt по одному адресу в строчке. После того как адрес будет сохранен, давайте выведим соответствующее сообщение и отобразим форму для подписки еще одного адреса или удаления существующего. Вот собственно почти и все. Осталось добавить только возможность отправки писем. Для безопастности, давайте на возможность отправки писем поставим пароль - необходима форма для ввода пароля. Далие потребуются формы для заполнения адреса отправителя и темы, а также для самого текста. Ну и, наконец, сам скрипт, который будет отсылать письма. А теперь все по порядку.

Форма для ввода адреса електронной почты будет состоять только из окна для ввода адреса и кнопки для подтверждения:

<form method="post" action="ras.php" enctype="multipart/form-data">
<input type="text" name="email" size="30">
<input type="submit" name="submit" value="подписаться"></form>


Итак, в окне для ввода текста, с именем email и видимой длиной в 30 символов, будет вводиться адрес електронной почты. После нажатия на кнопку с надписью подписаться, адрес будет передан скрипту ras.php для занесения в базу рассылки.

Далее давайте расмотрим скрипт ras.php который будет сохранять адрес почты в файле, выводить сообщение о результате и формы для подписки и отписки. Скрипт можно исполнить совсем просто - сохранить адрес, вывести соответствующее сообщение. Но могут возникнуть проблемы: кто-то может случайно подписаться несколько раз, кто-то может допустить опечатку и ввесли в поле адреса недопустимый символ или нарошно ввести билеберду. В таком случае база рассылки будет загрязнятсья, а неверные адреса станут приводить к ошибкам в работе скрипта. Вывод ясен - перед сохранением адреса следует проверить его на соответствие стандартам имен адресов електронных почтовых ящиков, а также на наличие в базе рассылки. Для того чтоб не рассматривать код по частям, я дам комментарии в самом коде:

<?
$file = "maillist.txt"; // файл, содержащий адреса

error_reporting(0); // запрещаем вывод сообщений о возможных ошибках

function test_mail($char) // функция, проверяющая реальность адреса

{
$flag = false;
if (eregi("^[_.0-9a-z-]+@([0-9a-z][-0-9a-z.]+).([a-z]{2,3}$)", $char)) $flag = true;
if ($flag) return true;
else return false;
}

$email = trim(strtolower($email)); // получаем введеный в
// форму адрес с
// символами в нижнем регистре

function copy_mail($char) // проверяем, есть ли такой адрес в базе
{
$file = "maillist.txt";
$list = file($file);
for ($i = 0; $i < sizeof ($list); $i++)
if ($char == trim($list[$i])) $flag = true;

if ($flag) return true;
else return false;
}

echo "<center>";

if (is_file($file)) // далие проверяем адрес вышеописаными функциями
{
$maillist = file($file);
if (!$email == '') {
if (test_mail($email)) {
if (!copy_mail($email))
{
$maillist[] = " $email";
print "E-mail: $email добавлен базу рассылки</center>";
}
else print "E-mail: $email уже есть в базе</center>";
}
else print "E-mail: $email не сушествует</center>";
}
else print "</center>";
}
else print "Не найден файл $file ! Пожалуйста <A HREF="mailto:$fromemail">сообщите</a> мне о ошибке.</center>";
// выводи на екран форму с предложением подписки и отписки
echo "<br><center>Подписаться на рассылку<form method="post" action="ras.php" enctype="multipart/form-data">";
echo "Введите mail:<input type="text" name="email" size="30"><input type="submit" name="submit" value="подписаться"></form></center>";

echo "<CENTER><br><br><form method="post" action="ras.php" enctype="multipart/form-data">";
echo "Отписаться от рассылки<br>Введите mail:";
echo "<input type="text" name="delmail" size="15"><input type="submit" name="submit" value="Отписаться"></form></CENTER>";
// если пользователь решил отписаться - удаляем введеный адрес
$flag = false;
$fw = fopen($file, "w");
for ($i = 0; $i < sizeof ($maillist); $i++)
if (trim(strtolower($delmail)) == trim(strtolower($maillist[$i]))) {
if (!$delmail == '')
{
print "<center>$delmail удален из базы рассылки</center>";
$flag = true;
}
}
else fputs($fw, $maillist[$i]); // введеного адреса в базе нет
fclose($fw);
if (!$delmail == '')
if (!$flag) print "<center>$delmail не найден в базе рассылки</center>";
?>


Вот наш код сохранения и удаления адресов готов. Теперь надо позаботится о средствах отправки почты. Не будем же мы через Аутлук отсылать ?. Как уже говорилось, защитим возможность отправки паролем, который будем вводить на специальной форме:

<form method="POST" action="out.php">
<input type="password" name="pass" value="">
<input type="submit" value="войти">
</form>


Поле для ввода с именем pass и будет служить для ввода пароля. После нажатия на кнопку с надписью войти, пароль будет передан скрипту out.php:

<?

$subject = "Рассылка моего сайта"; // тема рассылки
$fromemail = "мое@мыло"; // ваш адрес (для ответов)
$file = "maillist.txt"; // список адресов подписчиков
$password = "secretpassword"; // ваш пароль для рассылки

if ($pass == $password) // если пароль ввели правильный
// то выводим форму с полями для ввода:
// адрес отправителя, текст письма, тело письма
// кнопку для отправления
// после нажатия на кнопку, передаем данные скрипту send.php
{
echo "<font size="-1"><hr><form method="POST" action="send.php">";
echo "адрес отправителя<br><input type="text" name="fromemail" value="$fromemail" size="25"><br>";
echo "тема письма<br><input type="text" name="subject" value="$subject" size="50">";
echo "<br>текст письма:<br><textarea name="body" rows="8" cols="50"></textarea>";
echo "<br><input type="submit" value="Отправить сообщение"></form></font>";
print "<i>В базе<b>". sizeof($maillist) ."</b> адресов</i><br><hr>";
for ($i = 0; $i < sizeof ($maillist); $i++) print $maillist[$i]. "<br>";
}
// если пароль неверный - просим ввести еще раз
else echo "<form method="POST" action="ras.php"><input type="password" name="pass" value=""><input type="submit" value="Управление"></form>";

?>


Осталось рассмотреть только один скрипт - тот самый, который будет отсылать почту:

<?

$odr = " Для отказа от подписки воспользуйтесь ссылкой ";
$homepage = "http://адрес.сайта/ras.php";

error_reporting(0);
$subject = $HTTP_POST_VARS["subject"];
$body = $HTTP_POST_VARS["body"];
$subject = stripslashes($subject);
$body = stripslashes($body);

$file = "maillist.txt";
$maillist = file($file);

print "В базе". sizeof($maillist) ." адресов<br>";
for ($i = 0; $i < sizeof ($maillist); $i++)
{
#echo($maillist[$i]."<br>");
mail($maillist[$i], $subject,
$body ."$odr $homepag?delmail=$maillist[$i]",
"From: $fromemail");
}
echo "Готово!";

?>


Тут все просто: получаем значения, введенные в предыдущюю форму и в цыкле отправляем их по очереди на каждый из адресов.

Вот совсем и несложно! Теперь вы имеете мощный инструмент по ведению полностью собственой рассылки. Нет больше для вас никаких правил. Что хотите то и пишите в своей рассытке. Полная свобода по конфигурации и внешнему виду форм для подписки.

Разумеется, данный код является лишь минимальным набором. Например, с помощью функции mail можно организовать себе извещение о новом подписчеке, а подписчику о удачной регистрации, рассказать побольше о рассылке.

Разумеется, говоря о полной свободе, я не в коем случае не имел в виду принудительную подписку ? или, проще говоря, спам. Если вдруг кто решит рассылать спам таким образом, то пусть учтет что на него сразу начнут жаловатся администрации хостинга. И неважно платный хостинг или нет, если администрация хостинга заметит подобные действия, она анулирует предоставление своих услуг вам без возмещения убытков. А с халявными хостингами еще туже. Во-первых, надо просить персональное разрешения у администрации на открытие данной функции, во-вторых, как правило, стоит лимит в 1 письмо за минуту. Так что господа спамеры, обламайтесь :)


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Другие новости по теме:

 
 

#1 написал: Julumaniya

19 марта 2012 11:52 | ICQ: -- |

Публикаций: 0 | Комментариев: 0     цитировать    
 
 

#2 написал: generic viagra

29 марта 2012 00:13 | ICQ: -- |


Группа: Гости
Регистрация: --
http://www.cialis-without-prescription.us <a href="http://www.cialis-without-prescription.us">Cialis Without Prescription</a> asdasd Cialis Without Prescription asdasd
http://www.viagrabuyonline.us <a href="http://www.viagrabuyonline.us">Buy viagra online</a> asdasd Buy viagra online asdasd
http://www.viagra.gd <a href="http://www.viagra.gd">viagra</a> asdasd viagra asdasd
http://www.cialis.vc <a href="http://www.cialis.vc">cialis</a> asdasd cialis asdasd
http://www.buyonlineambien.com <a href="http://www.buyonlineambien.com">Buy ambien online</a> asdasd Buy ambien online asdasd
http://www.viagra-cheap.us <a href="http://www.viagra-cheap.us">Cheap viagra</a> asdasd Cheap viagra asdasd

2
Публикаций: 0 | Комментариев: 0     цитировать    
 
 

#3 написал: cialis

30 марта 2012 03:29 | ICQ: -- |


Группа: Гости
Регистрация: --
http://www.cialisonline.biz <a href="http://www.cialisonline.biz"> Cialis online </a> Cialis online //**


http://www.cialis.vc <a href="http://www.cialis.vc">cialis</a> && cialis **
Публикаций: 0 | Комментариев: 0     цитировать    
 
 

#4 написал: cialis

31 марта 2012 20:24 | ICQ: -- |


Группа: Гости
Регистрация: --
http://www.cialisonline.biz <a href="http://www.cialisonline.biz"> Cialis online </a> Cialis online //**
http://www.generic-viagra.us <a href="http://www.generic-viagra.us">Generic viagra</a> &&# Generic viagra &&#
Публикаций: 0 | Комментариев: 0     цитировать    
 
 

#5 написал: jeatrisee

1 апреля 2012 23:39 | ICQ: -- |

Публикаций: 0 | Комментариев: 264     цитировать    
 
 

#6 написал: jeatrisee

2 апреля 2012 03:10 | ICQ: -- |


Группа: Гости
Регистрация: 1.04.2012
Публикаций: 0 | Комментариев: 264     цитировать    
 
 

#7 написал: Daxfaissera

2 апреля 2012 19:22 | ICQ: 154186735 |


Группа: Гости
Регистрация: 1.03.2012
understanding your credit report credit suisse director hong kong. free money for home loans, payday loan instant cash. no credit card involved por consumer credit direct mail.

blogcast credit on go daddy check credit reports free. payday car title loans. paday loans online in north carolina credit report.

kroger rewards points credit card montana trans union credit reports. montelago student loans, find instant payday loans. bull-put credit spread lapeer county community credit unioni.

credit card counseling service oklahoma city best credit card generator software. disney opening credits. credit card master 4, maine credit unions open to public.
Публикаций: 0 | Комментариев: 205     цитировать    
 
 

#8 написал: cialis

3 апреля 2012 01:28 | ICQ: -- |


Группа: Гости
Регистрация: --
http://www.generic-viagra.us <a href="http://www.generic-viagra.us">Generic viagra</a> &&# Generic viagra &&#
Публикаций: 0 | Комментариев: 0     цитировать    
 
 

#9 написал: HuttBlalp

3 апреля 2012 19:34 | ICQ: -- |


Группа: Гости
Регистрация: --
payday loans alcoholism new credit scoring. freeze on credit report, US Quick Cash Payday Loans. credit first future, citi credit card code.

capcom credit union credit score of 578. rate card 0 credit transfer. louisiana judgments and credit reports texas veterans loans.
Публикаций: 0 | Комментариев: 0     цитировать    
 
 

#10 написал: HuttBlalp

4 апреля 2012 00:03 | ICQ: -- |


Группа: Гости
Регистрация: --
consumer credit cousiling services best credit card deals travel. financing business using credit cards, Greatest Payday Loans. uk mortgages refinancing equity credit uk credit apply card online.

credit union plainfield ct tempstar energy tax credits. transferring credit card borrowing. emery riddle credit for a p, bad business credit loan people small.
Публикаций: 0 | Комментариев: 0     цитировать    
 
 

#11 написал: cialis

5 апреля 2012 04:41 | ICQ: 1654653789 |


Группа: Гости
Регистрация: 4.04.2012
http://www.viagra-cheap.us <a href="http://www.viagra-cheap.us">Cheap viagra</a> //* Cheap viagra %%%


http://www.cialis.vc <a href="http://www.cialis.vc">cialis</a> && cialis **
Публикаций: 0 | Комментариев: 186     цитировать    
 
 

#12 написал: cialis

7 апреля 2012 07:15 | ICQ: 1654653789 |


Группа: Гости
Регистрация: 4.04.2012
http://www.onlinecialis.biz <a href="http://www.onlinecialis.biz"> Cialis online </a> ++ Cialis online &&#


http://www.levitra.gd <a href="http://www.levitra.gd">levitra</a> && levitra ++
Публикаций: 0 | Комментариев: 186     цитировать    
 
 

#13 написал: cialis

8 апреля 2012 04:51 | ICQ: 1654653789 |


Группа: Гости
Регистрация: 4.04.2012
http://www.viagra-cheap.us <a href="http://www.viagra-cheap.us">Cheap viagra</a> //* Cheap viagra %%%
Публикаций: 0 | Комментариев: 186     цитировать    
 
 

#14 написал: cialis

9 апреля 2012 14:07 | ICQ: 1654653789 |


Группа: Гости
Регистрация: 4.04.2012
http://www.viagra.gd <a href="http://www.viagra.gd">viagra</a> &&# viagra &&#
Публикаций: 0 | Комментариев: 186     цитировать    
 
 

#15 написал: worldoftanki

11 апреля 2012 18:34 | ICQ: 316142827 |


Группа: Гости
Регистрация: 9.04.2012
Хорошо! Все бы так писали :)

<a href=http://www.worldoftanki.ru/2012/04/page/18>Заставка 158 Заставка 126</a>
<a href=http://www.worldoftanki.ru/attachments/article/3014/3014_fonts.rar>Заста
вка от alekslain Заставка 98</a>

Какой догадливый! скривился Серб. Пошли в штаб, нас ждут.
Струсил, кивнул Вася. Я так и знал. Пусть сказки про «My Little Pony» для маленьких девочек пишет, а нас оставит в покое! Эдак завтра насочиняет что-нибудь про драконов в «World of Warplanes», а нам потом разгребай!
Публикаций: 0 | Комментариев: 79     цитировать    
 
 

#16 написал: worldoftanki

12 апреля 2012 09:09 | ICQ: 316142827 |


Группа: Гости
Регистрация: 9.04.2012
Елки-палки, уникальная заметка

<a href=http://www.worldoftanki.ru/attachments/article/3014/3014_crosshair_panel_sn
iper.zip>Заставка от Deasoul 4 Заставка от P_o_g_S</a>
<a href=http://www.worldoftanki.ru/angary/kitajskij-novogodnij-angar.html>Застав
ка 116 Последнее письмо…</a>

Радует только одно: некоторым товарищам эмпирическим путем (путём копания в файлах игры) удалось выяснить эти цифры.
На второй этаж, можно по лестнице, можно на лифте, сделал охранник, выдав гостю электронный пропуск. Там направо, кабинет найдете...


Елки-палки, уникальная заметка

<a href=http://www.worldoftanki.ru/attachments/article/3014/3014_crosshair_panel_sn
iper.zip>Заставка от Deasoul 4 Заставка от P_o_g_S</a>
<a href=http://www.worldoftanki.ru/angary/kitajskij-novogodnij-angar.html>Застав
ка 116 Последнее письмо…</a>

Радует только одно: некоторым товарищам эмпирическим путем (путём копания в файлах игры) удалось выяснить эти цифры.
На второй этаж, можно по лестнице, можно на лифте, сделал охранник, выдав гостю электронный пропуск. Там направо, кабинет найдете...
Публикаций: 0 | Комментариев: 79     цитировать    
 
 

#17 написал: cialis

20 апреля 2012 21:51 | ICQ: 1654653789 |


Группа: Гости
Регистрация: 4.04.2012
http://www.viagra.gd <a href="http://www.viagra.gd">viagra</a> &&# viagra &&#
http://www.cialis.gd <a href="http://www.cialis.gd">cialis</a> &&# cialis (())
Публикаций: 0 | Комментариев: 186     цитировать    
 
 

#18 написал: Nidocootbilla

10 мая 2012 00:00 | ICQ: -- |


Группа: Гости
Регистрация: 9.05.2012
заказать осетинские футболки заказать футболку с надписью цао. где купить футболку с надписью Ronaldo, майки с логотипом. metallica майки где в питере купить футболку пиратской станции.

заказать футболку как у armina, заказ футболок москва. где купить майку сборной россии по хоккею. dnb майки купить футболки disciples 3.

ак 47 футболки заказ хоккейных футболок с надписью. интеренет магазин футболок, майки футболки. купить футболки wwf в москве Где можно купить футболки.

купить майку британский флаг купить рэперские футболки. armin only футболка. купить крутую футболку кислотные футболки уфа.
Публикаций: 0 | Комментариев: 189     цитировать    
 
 

#19 написал: jeatrisee

10 мая 2012 19:24 | ICQ: -- |

Публикаций: 0 | Комментариев: 264     цитировать    
 
 

#20 написал: GekCreertyWak

12 мая 2012 02:40 | ICQ: -- |


Группа: Гости
Регистрация: 11.05.2012
new car insurance coverage, home insurance contents. home auto insurance quotes, check Internet insurance company in Azusa. florida car insurance rate car insurance compare prices.

car import insurance motorcycle insurance california. homeowner insurance online. student car insurance quotes, general auto insurance.

homesite homeowners insurance renters home insurance. motorcycle insurance best rates, low cost auto insurance california. car insurance chicago il new drivers insurance.

cheap motorcycle insurance in california buy auto insurance online instantly. california state auto insurance. how much does rental car insurance cost get insurance quote.
Публикаций: 0 | Комментариев: 208     цитировать    
 
Назад 1 2 3 Далее
 

Добавление комментария