PHP - Статьи по PHP - Своя рассылка на PHP
Посетите Форум по программированиваю на .NET организовать рассылка Ruby
.:: Web-мастеру ::.
PHP
ASP .NET
Perl
JavaScript
CSS
HTML
Раскрутка
.:: Программисту ::.
DirectX
OpenGL
Pascal
C++
Алгоритмы
.:: Пользователю ::.
Windows
Linux
BIOS
.:: Посетителю ::.
ФОРУМ
Юмор
Рассылки
КАТАЛОГ
ФизМат
Партнеры
Републикация
Написать
.:: Железо ::.
Ноутбук Acer 2354 LC
МР3 MPIO FL350
.:: Партнеры ::.
intel pentium 4; hp laptop; ваз 2112 цена в Элексе (дорого). ваз 2112 цена в Eleks (дорого); Sonnenschutzfolie; куплю брус, фанера фк, куплю пиломатериал
Главная > PHP > Своя рассылка на PHP
Своя рассылка на PHP
В интернете есть много бесплатных сервисов. В том числе организовать рассылка услуги по рассылке писем подписчикам. Некоторые из них очень хороши. Но раз уж они бесплатны, значит тут же в письмах появляется реклама. Да организовать рассылка немалые формы для подписки с логотипом предоставителя услуг многих не устравивают.
Так почему бы не написать простенький движок для своей рассылки организовать рассылка отсылать письма своими силами?
Давайте разберемся, что нам для этого потребуется. Для того чтоб посетители имели возможность подписаться на вашу рассылку необходима форма для ввода адреса електронной почты. После ввода адрес надо запомнить. Давайте адреса будем сохранять в файле maillist.txt по одному адресу в строчке. После того как адрес будет сохранен, давайте выведим соответствующее сообщение организовать рассылка отобразим форму для подписки еще одного адреса или удаления существующего. Вот собственно почти организовать рассылка все. Осталось добавить только возможность отправки писем. Для безопастности, давайте на возможность отправки писем поставим пароль - необходима форма для ввода пароля. Далие потребуются формы для заполнения адреса отправителя организовать рассылка темы, организовать рассылка также для самого текста. Ну и, наконец, сам скрипт, который будет отсылать письма. А теперь все по порядку.
Форма для ввода адреса електронной почты будет состоять только из окна для ввода адреса организовать рассылка кнопки для подтверждения:
Итак, в окне для ввода текста, с именем 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 "
";
if (is_file($file)) // далие проверяем адрес вышеописаными функциями
{
$maillist = file($file);
if (!$email == '') {
if (test_mail($email)) {
if (!copy_mail($email))
{
$maillist[] = "\n$email";
print "E-mail: $email добавлен базу рассылки
";
}
else print "E-mail: $email уже есть в базе";
}
else print "E-mail: $email не сушествует";
}
else print "";
}
else print "Не найден файл $file ! Пожалуйста сообщите мне о ошибке.";
// выводи на екран форму с предложением подписки организовать рассылка отписки
echo "
Подписаться на рассылку
";
echo "
";
// если пользователь решил отписаться - удаляем введеный адрес
$flag = false;
$fw = fopen($file, "w");
for ($i = 0; $i < sizeof ($maillist); $i++)
if (trim(strtolower($delmail)) == trim(strtolower($maillist[$i]))) {
if (!$delmail == '')
{
print "
$delmail удален из базы рассылки
";
$flag = true;
}
}
else fputs($fw, $maillist[$i]); // введеного адреса в базе нет
fclose($fw);
if (!$delmail == '')
if (!$flag) print "