Как сделать на своем сайте почту?

3 ноября 2014 г. Просмотров: 701
Форма обратной связи – обязательный атрибут любого сайта, созданного для решения сколько-нибудь серьезных задач. Один из наиболее простых способов организовать отправку email-сообщения от посетителя сайта его владельцу – использовать команду mail языка PHP. Ниже – пошаговая инструкция как это сделать.
Создать сайт самостоятельно с Wix.com

Вам понадобится

  • Базовые знания языков PHP и HTML

Инструкция

  • Шаг 1: создайте новый php-документ.В любом текстовом редакторе (например - в стандартном Блокноте) создайте новый документ. Сразу впишите в него каркас html-кода страницы, который будете дополнять по ходу создания механизма отправки email-сообщений:
  • Отправка eMail-сообщения

  • Шаг 2: добавьте в документ html-форму.Теперь следует добавить между html-тегами и инструкции браузеру отобразить форму для ввода посетителем данных и отправки их на сервер. Сначала - открывающий тег формы:Атрибут method указывает каким способом браузер должен отправить информацию на сервер.Здесь нужно вставить инструкцию на языке php - она будет выводить сообщение для посетителя, после того как он отправит данные на сервер и они будут обработаны скриптом:Следующая строка сформирует поле, в которе посетитель должен указать свое имя:Ваше имя:
  • Здесь атрибут type указывает тип этого элемента формы - простое текстовое поле. А атрибут name это имя переменной, в которой введенное в это поле будет передано на сервер - name. Тег

    - «перевод каретки».Дальше надо дать возможность посетителю указать свой email-адрес для связи с ним:E-mail:

    Здесь все аналогично предыдущей строке. Имя переменной, в которой на сервер будет передан почтовый адрес посетителя - email.Теперь надо добавить многостраничное текстовое поле (тег textarea) для ввода текста сообщения:Сообщение:

    Атрибуты rows и cols задают размер этого поля - rows указывает количество строк, а cols - число знаков в каждой строке. Введенный текст будет отправлен в переменной с имененм mess.После всех полей добавьте кнопку для отправки сообщения:

    В атрибуте value этого тега указан текст надписи на кнопке («Отправить»).Для работы php-скрипта будет нужна еще одна переменная, которая должна быть отправлена вместе с данными из формы. Разместите ее в скрытом от посетителя элементе формы:Имя этой переменной "act", а передаваемое значение - "send".Осталось добавить только закрывающий тег формы:

  • Шаг 3: добавьте php-код обработки данных из формы.Нажатием кнопки с надписью «Отправить» посетитель отошлет введенную им информацию. Так как в теге form нет атрибута action, который должен указывать интернет-адрес скрипта для отправки данных, то они будут посланы на адрес этой же самой страницы. Поэтому в html-код этой страницы нужно добавить php-инструкции для получения, проверки и отправки на ваш email данных из формы.Начинаться они должны с открывающего php-тега:В следующей строке укажите переменную, которая будет содержать сообщение для посетителя. Пока пустую:$msg = "";Теперь скрипт должен проверить присланы ли данные из формы. Сервер, получая данные, отправленные методом POST, помещает их в суперглобальный массив с именем $_POST. Значит скрипту надо проверить - есть ли в этом массиве хоть какая-нибудь информация из формы. Посетитель мог не заполнить ни одного поля, но скрытая переменная все равно должна присутствовать - ее наличие и будем проверять:if($_POST['act']=="send") {Если такая переменная есть, то будет выполняться следующий блок инструкций скрипта. Дл удобства в начале этого блока поместите переменные, которые вы сможете изменять в дальнейшем:$email_length = 500;Это максимально разрешенное количество знаков в сообщении посетителя.$email_html = false;Если пользователь введет в сообщении html-теги, то они будут вырезаны скриптом. Если же их следует оставлять, то значение false этой переменной замените на true.$email_recepient = "moi_adres@gmail.com";Это адрес вашей почты, на который скрипт должен отправлять сообщения посетителей.$email_subject = "Сообщение от посетителя сайта";Переменная содержит текст, который будет указан в теме отсылаемого вам письма.$email_regex = "/^(([^()[\]\\.,;:\s@\"]+(\.[^()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/";Эту переменную менять не следует – в ней содержится шаблон регулярного выражения, используемого скриптом для проверки правильности формата email-адреса, введенного посетителем в поле email. В следующей строке как раз и будет эта проверка:if((!$_POST['email']) || (!preg_match($email_regex, $_POST['email']))) $msg .= "Указан неверный e-mail адрес.";Если посетитель указал явно неправильный адрес для связи с ним, то скрипт выдаст сообщение об этом. Все такие сообщения до окончания работы скрипта суммируются в переменную $msg.Теперь проверка наличия самого текста сообщения:if (!$_POST['mess']) $msg .= " Нет текста сообщения";Если посетитель оставил поле для текста пустым, то в переменную $msg добавится сообщение и об этом.Если в переменной $email_html вы задали удаление html-тегов из текста сообщения, то скрипт сделает это в следующих двух строках:$userMess = $_POST['mess'];
  • if(!$email_html) $userMess = strip_tags($userMess);И в завершение всех проверок - проверка длинны сообщения:if (strlen($userMess) > $email_length) $msg .= " Длина текста сообщения превышает допустимую ($email_length знаков).

    \n";Если хоть одна из проверок не пройдена, то переменная $msg уже не пуста. Тогда надо дооформить все записанные в нее сообщения об ошибках - добавить текст «Ошибка» и задать оттенок красного цвета:if($msg) $msg = "Ошибка: $msg";А если проверки пройдены, то подготовить данные к отправке на ваш адрес:else {

    $userMess = "Имя: ".$_POST['name']."

    \n---

    \n".$userMess."

    \n

    \n---

    \n";

    $headers="Content-Type: text/html; charset=windows-1251\n";

    $headers.="From: \nX-Mailer: siteMailer";Следующая строка запускает почтовую программу вашего сервера и отправляет подготовленное сообщение:mail($email_recepient, $email_subject, $userMess, $headers);Теперь осталось составить сообщение для посетителя о том, что его послание отправлено:$msg = "Ваше сообщение отправлено. Спасибо!

    \n";

    }

    }

    ?>

  • Шаг 4: разместите страницу на сервере.Созданную php-страницу сохраните с нужным вам именем и расширением php и загрузите на сервер к вашему сайту.Конечно, это страница «в голом виде», вам нужно оформить ее так же, как оформлены остальные страницы вашего сайта. Или же взять элементы этой страницы и добавить их в уже существующую страницу сайта.
  • Оцените статью!