Як зробити на своєму сайті пошту
форма зворотнього зв`язку - Обов`язковий атрибут будь-якого сайту, створеного для вирішення будь-яких серйозних завдань. Один з найбільш простих способів організувати відправку email-повідомлення від користувача сайту його власнику - використовувати команду mail мови PHP. Нижче - покрокова інструкція як це зробити.
Вам знадобиться
- Базові знання мов PHP і HTML
Інструкція
1
Крок 1: створіть новий php-документ.
У будь-якому текстовому редакторі (наприклад - в стандартному Блокноті) створіть новий документ. Відразу впишіть в нього каркас html-коду сторінки, який будете доповнювати по ходу створення механізму відправки email-повідомлень:
Відправка eMail-повідомлення
У будь-якому текстовому редакторі (наприклад - в стандартному Блокноті) створіть новий документ. Відразу впишіть в нього каркас html-коду сторінки, який будете доповнювати по ходу створення механізму відправки email-повідомлень:
2
Крок 2: додайте в документ html-форму.
Тепер слід додати між html-тегами і інструкції браузеру відобразити форму для введення відвідувачем даних і відправки їх на сервер. Спочатку - відкриває тег форми:
Тепер слід додати між html-тегами і інструкції браузеру відобразити форму для введення відвідувачем даних і відправки їх на сервер. Спочатку - відкриває тег форми:
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;
Натисканням кнопки з написом «Надіслати» відвідувач відішле введену ним інформацію. Так як в тезі 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 і завантажте на сервер до вашого сайту.
Звичайно, це сторінка «в голому вигляді», вам потрібно оформити її так само, як оформлені інші сторінки вашого сайту. Або ж взяти елементи цієї сторінки і додати їх у вже існуючу сторінку сайту.
Створену php-сторінку збережіть з потрібним вам ім`ям і розширенням php і завантажте на сервер до вашого сайту.
Звичайно, це сторінка «в голому вигляді», вам потрібно оформити її так само, як оформлені інші сторінки вашого сайту. Або ж взяти елементи цієї сторінки і додати їх у вже існуючу сторінку сайту.
Статті за темою "Як зробити на своєму сайті пошту"
Оцініть, будь ласка статтю