Html как отправить сообщение на почту. Создаем форму обратной связи на PHP

Создание формы обратной связи Отправка файлов через форму обратной связи

В предыдущих статьях были рассмотрены различные варианты формы обратной связи и проверка её заполнения посетителем сайта. Довольно часто, кроме простого сообщения от посетителя сайта, требуется переслать автору фотографию, документ, резюме и т.п. Форма обратной связи позволяет легко реализовать отправку любого файла с компьютера пользователя на ваш e-mail . Иногда можно встретить формулировку "Отправка аттача с сайта" от англ. Attach (Прикреплять).

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

Существует множество скриптов отправки файлов с сайта, в том числе и с проверкой отсылаемого содержимого. Найти подходящий не трудно, всё зависит от ваших задач и терпения в поиске по интернету.

В любом случае, начинаем с добавления в созданную нами форму обратной связи (см. статью "Создание формы обратной связи на сайте ") строчку кода , которая как раз и отвечает за формирование строчки с кнопкой Обзор . При нажатии на неё открывается стандартное окно Windows для выбора файла. Кроме того, обязательно надо добавить в начале формы атрибут enctype="multipart/form-data" тега :
.

Дополнительно введем в форму еще одно полезное поле "Тема сообщения", чтобы сразу видеть, что жаждет сообщить нам посетитель сайта. Таким образом, форма обратной связи с довесками будет выглядеть так:

Ваше имя:

Тема:

Ваш email:

Выбор файла для отправки:

Ваше сообщение:

Как всегда, код этой формы вполне работоспособен и его можно (нужно) посмотреть и скопировать в браузере.

Далее необходимо подкорректировать РНР-страничку отправки сообщения из формы обратной связи с вложенным файлом на ваш электронный адрес. Как говорилось выше, вариантов обработки формы великое множество и изобретать велосипед нет никакой необходимости.

Теперь нам осталось только немного изменить РНР-страничку, отвечающую за отправку почты с вложенным файлом, добавив в неё class.phpmailer.php командой include "class.phpmailer.php"; и несколько строк для обработки пересылаемого файла.

Полный рабочий код страницы mail.php для отправки с сайта сообщений с прикрепленным файлом приведен ниже:





Обратная связь




Перед заливкой файла mail.php на сайт не забудьте поменять [email protected] на свой e-mail.

В отличие от рассмотренного в первой части статьи , данный РНР-скрипт обработки формы обратной связи немного сложнее, но он создает более корректное электронное письмо с указанием адреса отправителя и темы его сообщения, на которое вы можете ответить обычным способом.

Дата добавления: 2011-12-01



Рассмотрим пример отправки сообщения с сайта на ваш электронный адрес. Зачем это нужно? Предположим, у вас на странице есть поле для комментариев, и вам нужно оперативно узнавать, что кто-то оставил комментарий. Не будете же вы каждую минуту заходить на свой сайт и проверять наличие новых комментариев.

Сам процесс создания формы и отправки письма несложен. Но есть некоторые моменты, которые могут испортить настроение на целый день.

Первая трудность - глупый и устаревший стандарт для писем на русском языке. Из-за него к вам на почту могут приходить письма с "кракозябрами". Особенно эта проблема заметна на почтовых клиентах типа Windows Mail, Outlook Express и т.д. Если читать письма через веб-интерфейс, то проблема не так актуальна. Многие почтовые сервера достаточно умны, чтобы корректно отобразить письмо.

Вторая проблема - нежелательные письма. Некоторые "альтернативно" одаренные личности могут без конца нажимать на кнопку отправления писем (флуд). К ним можно также отнести ботов - специально написанные программы, которые сами нажимают на кнопки.

Третья проблема - защита от уязвимостей. Если на сайте можно что-то вводить, значит существует вероятность взлома. Например, вы просите ввести в поле электронный адрес для регистрации, а хакер вводить специально заготовленный зловредный скрипт, который можно попортить вам сайт.

Если описанные трудности вас не успугали и вы хотите получать сообщения с сайта, то продолжим...

Начнем с простейшего примера без наворотов.

Создадим файл forms.php, который будет содержать форму для отправки сообщения.

Мы только что создали форму с двумя текстовыми полями и кнопкой. Обратите внимание, что у формы мы определили метод post и указали в параметре action путь к обработчику формы - mail.php. Естественно, вы можете указать свой адрес и другое имя для файла.

Теперь создадим файл mail.php (в нашем примере он должен находиться в той же папке).

В принципе этого достаточно для отправки письма. Главное, убедитесь, что у вас на сайте разрешено использовать функцию mail(), так как некоторые хостеры отключают ее или вводят различные ограничения на количество отправляемых писем.

Укрепляем оборону

В описанном примере есть минимальная защита в виде функции htmlspecialchars . Еще одной формой защиты может стать использование сессий.

В самом начале первого файла введите следующее.



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: