Як зробити на своєму сайті пошту

форма зворотнього зв`язку - Обов`язковий атрибут будь-якого сайту, створеного для вирішення будь-яких серйозних завдань. Один з найбільш простих способів організувати відправку email-повідомлення від користувача сайту його власнику - використовувати команду mail мови PHP. Нижче - покрокова інструкція як це зробити.
Відправка пошти з форми на сайті
Вам знадобиться
  • Базові знання мов PHP і HTML

Інструкція

1


Крок 1: створіть новий php-документ.
У будь-якому текстовому редакторі (наприклад - в стандартному Блокноті) створіть новий документ. Відразу впишіть в нього каркас html-коду сторінки, який будете доповнювати по ходу створення механізму відправки email-повідомлень:




Відправка eMail-повідомлення







2
Крок 2: додайте в документ html-форму.
Тепер слід додати між html-тегами і інструкції браузеру відобразити форму для введення відвідувачем даних і відправки їх на сервер. Спочатку - відкриває тег форми:

Атрибут method вказує яким способом браузер повинен відправити інформацію на сервер.
Тут потрібно вставити інструкцію мовою php - вона буде виводити повідомлення для відвідувача, після того як він відправить дані на сервер і вони будуть оброблені скриптом:
lt;? php if ($ mess) echo $ msg-? gt;
Наступний рядок сформує поле, в которе відвідувач повинен вказати своє ім`я:
Ваше ім`я:

Тут атрибут type вказує тип цього елемента форми - просте текстове поле. А атрибут name це ім`я змінної, в якій введене в це поле буде передано на сервер - name. тег
- «Переклад каретки».
Далі треба дати можливість відвідувачеві вказати свій email-адреса для зв`язку з ним:
E-mail:

Тут все аналогічно попередньому рядку. Ім`я змінної, в якій на сервер буде переданий поштова адреса відвідувача - email.
Тепер треба додати багатосторінкове текстове поле (тег textarea) для введення тексту повідомлення:
Повідомлення:


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


В атрибуті value цього тега зазначений текст напису на кнопці ( «Відправити»).
Для роботи php-скрипта буде потрібна ще одна змінна, яка повинна бути відправлена разом з даними з форми. Додайте її в прихованому від відвідувача елементі форми:

Ім`я цієї змінної "act", А передане значення - "send".
Залишилося додати тільки закриває тег форми:



3
Крок 3: додайте php-код обробки даних з форми.
Натисканням кнопки з написом «Надіслати» відвідувач відішле введену ним інформацію. Так як в тезі form немає атрибута action, який повинен вказувати інтернет-адресу скрипта для відправки даних, то вони будуть надіслані на адресу цієї ж самої сторінки. Тому в html-код цієї сторінки потрібно додати php-інструкції для отримання, перевірки та відправки на ваш email даних з форми.
Починатися вони повинні з відкриває php-тега:
lt;? php
У наступному рядку вкажіть змінну, яка буде містити повідомлення для відвідувача. Поки порожню:
$ Msg = ""-
Тепер скрипт повинен перевірити надіслані дані з форми. Сервер, отримуючи дані, відправлені методом POST, поміщає їх в суперглобальний масив з ім`ям $ _POST. Значить скрипту треба перевірити - чи є в цьому масиві хоч якась інформація з форми. Відвідувач міг не заповнити жодного поля, але прихована змінна все одно має бути присутня - її наявність і будемо перевіряти:
if ($ _ POST [ `act`] =="send") {
Якщо така змінна є, то буде виконуватися наступний блок інструкцій скрипта. Дл зручності на початку цього блоку помістіть змінні, які ви зможете змінювати в подальшому:
$ Email_length = 500-
Це максимально дозволену кількість знаків у повідомленні відвідувача.
$ Email_html = false-
Якщо користувач введе в повідомленні html-теги, то вони будуть вирізані скриптом. Якщо ж їх слід залишати, то значення false цієї змінної замініть на true.
$ Email_recepient = "[email protected]"-
Це адреса вашої пошти, на який скрипт повинен відправляти повідомлення відвідувачів.
$ Email_subject = "Повідомлення від користувача сайту"-
Мінлива містить текст, який буде вказано в темі посилається вам листи.
$ Email_regex = "/ ^ (([^ Lt; gt; () [] ., -: S @ "] + (. [^ Lt; gt; () [] ., -: 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) gt; $ 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: lt; $ _ POST [ `email`] gt; nX-Mailer: siteMailer"-
Наступний рядок запускає поштову програму вашого сервера і відправляє підготовлене повідомлення:
mail ($ email_recepient, $ email_subject, $ userMess, $ headers) -
Тепер залишилося скласти повідомлення для відвідувача про те, що його послання відправлено:
$ Msg = "Ваше повідомлення відправлено. Дякуємо!
n"-

}

}

?gt;
4
Крок 4: розмістіть сторінку на сервері.
Створену php-сторінку збережіть з потрібним вам ім`ям і розширенням php і завантажте на сервер до вашого сайту.
Звичайно, це сторінка «в голому вигляді», вам потрібно оформити її так само, як оформлені інші сторінки вашого сайту. Або ж взяти елементи цієї сторінки і додати їх у вже існуючу сторінку сайту.


Увага, тільки СЬОГОДНІ!


Оцініть, будь ласка статтю
Всього голосів: 147
Увага, тільки СЬОГОДНІ!