Отправляет email-рассылки с помощью сервиса Sendsay

PHP-песочница

  Все выпуски  

PHP-песочница Выпуск 12


Php-«песочница»

Выпуск 12. Отправка электронной почты на сайте.

Доброго времени суток, уважаемый подписчик. В этом выпуске «PHP-песочницы» я расскажу, как отправлять сообщение на электронный адрес со страницы сайта.

Возможности отправки электронной почты – очень полезная штука. Например, это даём возможность обеспечить обратную связь с посетителями ваших web-страниц. Или получить сообщение о новых комментариях к Вашим статьям. Или сообщить о новых зарегистрированных пользователях. И т. д. Вот и рассмотрим, как отправлять электронную почту.

Будем пользоваться формой регистрации нового пользователя и скриптом для её обработки, которые создавали в прошлых выпусках. Сделаем, чтобы на наш e-mail отправлялось сообщение о новом зарегистрированном пользователе.

Напомню, что скрипт находится в файле reg.php. Он нам и понадобится.

Откройте reg.php в Блокноте.

Отправка электронной почты осуществляется с помощью функции

mail(адрес, тема письма, текст, заголовок)

Функция отправляет текст и тему письма на указанный адрес. Необязательный параметр заголовок позволяет включить в сообщение дополнительные поля заголовка, например, поля From (От) и Reply-To (Ответить).

Сформируем параметры для функции mail. Для этого поместим адрес, тему и текст в переменные:

$address = "admin@localhost.ru"; /*адрес электронной почты, на который должно пойти сообщение. На локальном компьютере это может быть какой угодно адрес. Перед закачкой файлов на хостинг адрес нужно поменять на реальный*/
$subject = "Новый зарегистрированный пользователь на сайте"; /*тема письма*/
$message = "На сайте зарегистрирован новый пользователь: " .$name. ". Его пароль: " .$password. ". Его e-mail: " .$email;  /*текст сообщения*/

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

Все параметры для функции mail созданы, осталось их отправить. Делается это так:

mail ($address, $subject, $message, "Content-type:text/plain; Charset=windows-1251\r\n");

То есть, просто подставили каждую переменную на своё место в функцию.

Теперь полный код файла reg.php:

<?php
if (($name == "") || ($password == "") || ($email == ""))
{
echo "<p>Форма заполнена не полностью! Вернитесь, пожалуйста, и заполните все поля формы!</p>";
exit ();
}
else
{
/*удаляем лишние пробелы из формы*/
$name = trim ($name);
$password = trim ($password);
$email = trim ($email);
$newfile = fopen($name, "w");
fwrite ($newfile, $password);
fwrite ($newfile, "\n");
fwrite ($newfile, $email);
fwrite ($newfile, "\n");
fclose ($newfile);
echo "<p>Поздравляем Вас, " .$name. ". Регистрация прошла успешно.</p>";
}
// далее реализуем отправку нового комментария на адрес админа сайта
$address = "admin@localhost.ru";
$subject = "Новый зарегистрированный пользователь на сайте";
$message = "На сайте зарегистрирован новый пользователь: " .$name. ". Его пароль: " .$password. ". Его e-mail: " .$email;
//далее прописываем функцию для отправки сообщения
mail ($address, $subject, $message, "Content-type:text/plain; Charset=windows-1251\r\n");

/*чтение из файла с помощью функции fread */
$file = fopen($name, "r");
$n = fread ($file, 100);
echo "<p>Ваш пароль: " .$n. ". Сохраните его.</p>";
fclose ($file);
/*чтение из  файла с помощью функции file и массива*/
$rfile = fopen($name, "r"); /*открываем файл только для чтения*/
$data = file($name); /* считываем открытый файл в массив $data*/
echo "Ваш пароль: " .$data[0]. ". Ваш электронный адрес: " .$data[1]. ". Сохраните свои данные."; //выводим из массива на страницу
fclose ($rfile); //закрыли файл
?>

Сохранили изменения. Обновили страницу в браузере. Зарегистрируйте нового пользователя через форму регистрации.

Теперь, чтобы проверить, отправлено ли сообщение, пройдите в Денвере по адресу WebSerwers – tmp - !sendmail. В папке !sendmail должно появиться письмо с сообщением о новом пользователе. Как Вы догадываетесь, на локальном сервере все письма попадают в папку !sendmail.

В файле reg.php есть код для вывода регистрационных данных на страницу в браузере. Логичней их отправить на адрес новому пользователю. Предлагаю Вам самостоятельно осуществить такую отправку, пользуясь только что рассмотренным примером.

Успехов. До встречи в новых выпусках.

Андрей Чернобай
kapitansg@yandex.ru


"PHP+MySQL для начинающих" >>>>>

Как стать Веб-мастером >>>>>

 

 


В избранное