Форма обратной связи на PHP с отправкой на e-mail

На этом уроке мы познакомимся с функцией mail () , на примере создания формы обратной связи на PHP с последующей отправкой полученных данных на почту.

Для этого создадим два файла - forma.php и mail.php . В первом файлике будет находиться только форма с полями для ввода пользователем данных. Внутри тега form - кнопка "Отправить" и атрибут action , который ссылается на обработчик - mail.php , именно к нему обращаются данные из формы при нажатии кнопки "Отправить" . В нашем примере данные формы отправляются на веб-страницу с названием «/mail.php» . На этой странице прописан скрипт на PHP , который обрабатывает данные формы:


Данные формы отправляются методом POST (обрабатывается как $ _POST ). $ _POST - это массив переменных, переданных текущему скрипту через метод POST .

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




Форма обратной связи на PHP с отправкой на почту


Форма обратной связи на PHP





Оставьте сообщение:
Ваше имя:



E-mail:

Номер телефона:

Сообщение:

Текстовая область может содержать неограниченное количество символов-->







Так форма визуально выглядет в браузере.

Далее пишем код для файла mail.php . Придумываем сами имена для переменных. В PHP переменная начинается со знака $ , а затем имя переменной. Текстовое значение переменной заключается в кавычки. С помощью переменных на емайл администратора передается содержимое формы, просто подставив в квадратные скобки имя элемента формы - значение name .

Таким образом данные из массива $_POST будут переданы соответствующим переменным и отправлены на почту при помощи функции mail . Давайте заполним нашу форму и нажмем кнопку отправить. Не забудьте указать ваш е-майл. Письмо пришло моментально.

Не так давно я столкнулся с действующим методом, который позволяет злоумышленнику отправлять спам от имени вашего сайта, используя форму обратной связи Joomla (форму контакта). Эта возможность не является уязвимостью, и вряд ли будет исправлена. В этой статье я расскажу о том, как такое стало возможно, и что нужно делать, чтобы защитить свой сайт.

Стандартная форма обратной связи Joomla

В Joomla есть довольно мощный и гибкий компонент, который называется «Контакты ». Это стандартный компонент Joomla. Он есть на каждом сайте, т.к. устанавливается вместе с CMS. Данный компонент позволяет создавать и выводить на сайт категории контактов, контакты, формы обратной связи, позволяющие связаться с тем или иным контактом. Контакт – это, условно, пользователь – человек с сайта.

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

Отправка спама от имени сайта с использованием формы обратной связи Joomla

Вы удивитесь, насколько прост обнаруженный способ отправки спама от имени сайта. Чтобы он был возможен, форма обратной связи должна выглядеть примерно так:

Т.е. должны выполняться два условия:

  • Форма не защищена от спам-ботов (не подключена reCaptcha или какой-либо другой способ защиты формы)
  • В настойках контакта активирована опция «Отправлять отправителю копию письма». Благодаря ей в контактной форме появляется соответствующий чекбокс (см. рисунок выше).
  • Если хотя бы одно из этих условий не выполняется, проблем не будет. Если же выполняются оба условия, то, как говориться, следите за руками:

  • Спам-бот находит контактную форму. Защиты от спама нет – можно использовать.
  • Спам-бот определяет, что сайт на Joomla, и что используется стандартная форма контактов. Удивительно, но есть боты, которые прекрасно умеют это делать.
  • Спам-бот видит наличие чекбокса отправки копии письма отправителю.
  • Спам-бот подставляет в поле Email адрес из собственной базы спам-рассылки, поле сообщения заполняет спамом. Как заполнены остальные поля неважно.
  • Спам-бот отправляет форму и повторяет процесс многократно, подставляя все новые и новые адреса из собственной базы в поле Email.
  • Что происходит в результате? Joomla думает, что форму заполнил человек, который указал свой реальный адрес и хочет связаться с контактом с сайта. Поскольку галочка отправки копии письма установлена, то письма от сайта получают двое: человек, чей адрес привязан к контакту, и человек, чей адрес введен в поле Email.

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

    Последствия от такой атаки для сайта и бизнеса могут быть крайне неприятными, особенно когда чтобы раскрутить сайт уже вложено много денег. Если с адреса вашего домена рассылается спам, думаю не нужно объяснять, какой будет реакция его получателей.

    Как защититься от этой уязвимости?

    Как защититься от этой уязвимости? Элементарно. Сделайте так, чтобы одно из условий, описанных выше, не выполнялось, а именно.

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

    Конечно здорово будет, если вы хоть немного разбираетесь в HTML / CSS т.к. Вам придется уже по аналогии перетягивать код на свою страницу. PHP язык затрагивать не будем, все необходимые правки, которые нужно будет сделать под себя я покажу.

    UPDATE :По откликам читателей, я понял, что нужно что-то более красивое и функциональное, встречайте , ознакомьтесь и посмотрите. Сами выбирайте какая больше понравится)

    UPDATE2 : Version 3.0 Адаптивный Лендинг + форма ajax с передачей UTM-меток , ознакомьтесь и посмотрите. Вам понравится

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

    Форма обратной связи php — структура

    Разбор самой формы обратной связи будем изучать на примере посадочной страницы (Landing Page), кстати есть отдельная статья по . Посмотреть как это работает в действии можете по кнопкам расположенным ниже, прикладываю исходники этого одностраничника и главного файла обработчика-php (этот файл и будет обрабатывать и отправлять письмо на email)

    После того как скачаете исходники и распакуете архив, вы увидите следующую структуру по файлам:

    • image — все изображения, которые используются для самого Landing Page, кнопки и т.д.
    • js — javascript скрипты, которые обеспечивают например всплывающее модальное окно на странице и другие визуальные эффекты
    • index.html — индексный файл нашего одностраничника
    • index1.php — файл обработчик, в который передаются значения из формы, далее формируется письмо из полученных переменных и отправляется на указанный email адрес. Так же index1.php случит в роли промежуточной страницы уведомления об успешной отправке данных с автоматическим перенаправлением обратно на index.html (т.е. наш одностраничник)

    Важно, чтобы ваш хостинг, на котором располагаются файлы сайта, поддерживал php обработку, иначе файл index1.php не выполнится и работать не будет. Чтобы уточнить этот нюанс обратитесь в кампанию, где зарегистрирован ваш хостинг или просто протестируйте — работает, значит есть поддержка. Если нет, то включите опцию поддержки языка php

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

    Исходный код вызова формы и обработчика

    Взглянем на работу одной из кнопок, которая вызывает модальное всплывающее окно, в котором находится форма обратной связи. Данный приведенный исходный код — это не раз, два вставил на страницу и заработает, Вам придется самим подгонять под свой дизайн и потребности.

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Заказать обратный звонок Заказажите обратный звонок

    Заказать обратный звонок Заказажите обратный звонок

    Ниже полный исходный код обработчика index1.php, для того чтобы настроить отправку на свой почтовый ящик, поменяйте «[email protected]» на свой, остальное в принципе можно оставить без изменений

    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 С вами свяжутся

    С вами свяжутся body { background: #22BFF7 url(img/zakaz.jpg) top -70% center no-repeat; } setTimeout("location.replace("/index.html")", 3000); /*Изменить текущий адрес страницы через 3 секунды (3000 миллисекунд)*/

    Проверка работоспособности формы

    Вызываем окно и вводим данные для тестовой проверки нашей формы

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


    У меня на этом все, старался донести смысл и работу скрипта наилучшим образом. Возникнут вопросы, можете смело обращаться в комментарии или ко мне в VK (смотрите контактные данные). Желаю легкой и продуктивной работы Вам.

    В общении по электронной почте, как и в других сферах, есть свои правила этикета и социальный протокол. Если вам нужно написать письмо с просьбой об обратной связи на работе или на учебе либо получить отзыв на свою письменную работу, вам стоит подумать над формулировками, структурой письма, а также выбрать подходящий момент. Это позволит вам сделать письмо максимально эффективным. Будьте вежливы, пунктуальны и пишите по существу, чтобы получить ту информацию, которая вам нужна.

    Шаги Как попросить клиентов об обратной связи

    Не задавайте слишком много вопросов. Клиенты получают огромное количество просьб пройти опрос от всевозможных компаний. Если вы хотите, чтобы клиент удалил ваше письмо при получении, включите в него огромное количество вопросов. Если же вы хотите заинтересовать человека, ограничьтесь парой вопросов.

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

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

    • Отвечая на отзыв, будьте честны и ведите себя как профессионал. В современном мире из-за возможностей интернета можно в один момент лишиться репутации, если повести себя с людьми непрофессионально.
  • Не используйте flash-графику и другие объекты, которые будут долго грузиться. Если у человека медленное соединение, он наверняка удалит сообщение, если поймет, что оно грузится слишком долго. Помните: отзыв нужен вам, а не клиенту.

    Подберите подходящий шрифт и формат. Письмо должно выглядеть аккуратным и профессиональным. Письмо, набранное шрифтом Comic Sans и содержащее некачественную графику, вряд ли произведет впечатление на ваших клиентов. Лучше использовать стандартные шрифты (Times New Roman, Arial), если вы не разбираетесь в шрифтах, и отказаться от большого количества графики.

    Убедитесь, что письмо будет хорошо читаться на всех устройствах. Текст одной колонкой будет удобнее многоколоночного. Шрифт не должен быть слишком мелким. Письмо должно хорошо читаться на ноутбуке, телефоне и планшете. Поскольку в современном мире многие читают почту с телефона, письмо должно соответствовать этому формату.

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

    • Можно сказать так: "Я работала над презентацией, которая нужна завтра, и у меня возник вопрос к формату. Я не уверена, что правильно понимаю стандарты, принятые в нашей компании. Я прикрепляю презентацию к этому письму и буду очень благодарна, если Вы посмотрите ее и прокомментируете, все ли в порядке. Спасибо за помощь".
    • Не забудьте поблагодарить человека.
  • Говорите о конкретных вещах. Это позволит избежать общих фраз, которые окажутся бесполезными. Не задавайте вопросы, на которые можно ответить "да" или "нет, если только в этом нет острой необходимости. Постарайтесь не задавать руководителю или коллеге слишком много вопросов сразу.

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

    • Отвечайте не позже, чем через 1–2 дня.
  • Как попросить об отзыве на работе
  • Представьтесь. У преподавателя могут быть сотни студентов, особенно если это университет. Вам следует указать свое имя и фамилию, номер группы и факультет. Если вы учитесь в старших классах и занимаетесь на подготовительных курсах, укажите класс. Так преподавателю не придется гадать, кто вы, и ему будет проще написать отзыв.

    Не выходите за рамки делового общения. Иногда студентам сложно писать преподавателям, поскольку они не могут определиться со стилем. Если ваш преподаватель уже писал вам сам, придерживайтесь того же стиля, что и он. Лучше формулировать свои мысли так: "Я не уверена, что правильно поняла задание. У меня есть несколько вопросов относительно работы".

    Пишите кратко. Не пытайтесь объяснить весь контекст ваших вопросов, за исключением тех случаев, когда контекст необходим для понимания вопросов. К примеру, если вы хотите попросить о продлении срока сдачи работы, преподавателю могут потребоваться подробные объяснения, но если вы просто хотите задать вопрос по работе, не рассказывайте, почему вы не успели написать раньше из-за своей собаки и почему вы пишете сейчас (если только срок сдачи не наступает совсем скоро). Не говорите о том, что не имеет большого значения сейчас.

    Не откладывайте просьбу об обратной связи до последнего. Ваш преподаватель вряд ли захочет помогать вам накануне сдачи и наверняка будет недоволен тем, что вы не потрудились обратиться раньше. Если вы вынуждены задавать вопросы в последний момент, пишите кратко, по делу и извиняйтесь за беспокойство. Благодаря этому вероятность того, что преподаватель вам ответит, будет выше (но при условии, что он прочитает письмо вовремя).

    Используйте формат, оговоренный преподавателем. Нередко преподаватели оговаривают конкретный формат, в котором должно быть выполнено задание. Например, если преподаватель попросил выслать работу в формате.doc, не высылайте документ в.pdf или.pages. Если вы не знаете, какой формат нужно использовать, используйте.rtf или.pdf либо задайте вопрос преподавателю.

    Попросите дать отзыв о работе, которую вы уже сдали, или о вашем выступлении на экзамене. Напишите преподавателю вежливое письмо. Если у преподавателя есть приемные часы, сходите к нему лично. Скажите так: "Я сдал экзамен не так хорошо, как надеялся. Не могли бы вы указать мне на мои ошибки, чтобы мне было проще подготовиться к следующему экзамену?" Как правило, преподаватели охотно дают рекомендации в таких случаях.



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

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

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