Даровой отправить копию сообщения на вашу почту. Электронная переписка как доказательство. Помещаем HTML и PHP код отправки формы в один файл

Одной из самых востребованных функций на сайте является форма заявки или заказа, данные из которой отправляются на почту владельцу сайта. Как правило такие формы являются простыми и состоят из двух трех полей для ввода данных. Как же создать такую форму заказа? Здесь потребуется использование языка разметки HTML и языка программирования PHP.

Язык разметки HTML сам по себе несложен, нужно всего лишь разобраться в том как и где ставить те или иные теги. С языком программирования PHP все немного сложнее.

Для программиста создать такую форму не составит труда, а вот HTML верстальщику может показаться сложным некоторые действия.

Создаем форму отправки данных в html

Первая строка будет следующей

Это очень важный элемент формы. В нем мы указываем каким способом будут передаваться данные и какому файлу. В данном случае все передачется методом POST файлу send.php. Программа в этом файле соответственно должна принять данные, они будут содержаться в post массиве, и отправить их на указанный email адрес.

Вернемся к форме. Вторая строка будет содержать поле для ввода ФИО. Имеет следующий код:

Тип формы text, то есть пользователь сможет ввести или скопировать сюда текст с клавиатуры. Под параметром name содержится название формы. В данном случае это fio, именно под таким именем будет передаваться все, что пользователь введен в данноу поле. Параметр placeholder указывает на то, что будет записано в этом поле в виде пояснения.

Следующая строка:

Здесь практически все то же самое, но имя для поля указано email, а пояснении указано, чтобы пользователь в эту форму ввел свой адресс электронной почты.

Следующей строкой будет кнопка "отправить":

И последней строкой в форме будет тэг

Теперь соберем все вместе.





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





Создаем файл, принимающий данные из HTML формы

Это будет файл с именем send.php

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

$fio = $_POST["fio"];
$email = $_POST["email"];

Перед названиями переменных в php ставится знак $, в конце каждой строки ставиться точка с запятой. $_POST это массив в который передаются данный из формы. В форме html при этом указан метод отправки method="post". Так, приняты две переменные из формы html. Для целей защиты своего сайта нужно провести эти переменные через несколько фильтров - функций php.

Первая функция преобразует все символы, которые пользователь попытается добавить в форму:

При этом новые переменные в php не создаются, а используются уже имеющиеся. Что сделает фильтр, он преобразует символ "<" в "<". Также он поступить с другими символами, встречающимися в html коде.

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

$fio = urldecode($fio);
$email = urldecode($email);

Третей функцией мы удалим пробелы с начала и конца строки, если таковые имеются:

$fio = trim($fio);
$email = trim($email);

Существуют и другие функции, позволяющие отфильтровать переменные php. Их использование зависит от того, насколько вы опасаетесь того, что злоумышленник попытается добавить программный код в данную форму отправки данных на почту html.

Проверка данных, передаваемых от HTML формы в файл PHP

Для того, чтобы проверить, работает ли этот код, передаются ли данные можно просто их вывести на экран при помощи функции echo:

echo $fio;
echo "
";
echo $email;

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

Отправляем полученные данные из формы HTML на почту при помощи PHP

Для отправки данных на почту нужно воспользоваться функцией mail в PHP.

mail("на какой адрес отправить", "тема письма", "Сообщение (тело письма)","From: с какого email отправляется письмо \r\n");

Например, нужно отправить данные на email владельца сайта или менеджера [email protected].

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

mail("[email protected]", "Заявка с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: [email protected] \r\n");

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

if (mail("[email protected]", "Заказ с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: [email protected] \r\n"))
{
echo "сообщение успешно отправлено";
} else {
}

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

$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
//echo $fio;
//echo "
";
//echo $email;
if (mail("[email protected]", "Заявка с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: [email protected] \r\n"))
{ echo "сообщение успешно отправлено";
} else {
echo "при отправке сообщения возникли ошибки";
}?>

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

Помещаем HTML и PHP код отправки формы в один файл

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

Для реализации такой работы нужно поместить HTML код формы в файл send.php и добавить условие, которое будет проверять наличие переменных в массиве POST (этот массив передается из формы). То есть, если переменные в массиве не существуют, то нужно показать пользователю форму. Иначе нужно принять данные из массива и отправить их адресату.

Давайте посмотрим как изменить PHP код в файле send.php:



Форма заявки с сайта


//проверяем, существуют ли переменные в массиве POST
if(!isset($_POST["fio"]) and !isset($_POST["email"])){
?>





} else {
//показываем форму
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
if (mail("[email protected]", "Заявка с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: [email protected] \r\n")){
echo "Сообщение успешно отправлено";
} else {
echo "При отправке сообщения возникли ошибки";
}
}
?>

Существование переменной в POST массиве мы проверяем PHP функцией isset(). Восклицательный знак перед этой функцией в условии означает отрицание. То есть, если переменной не существует, то нужно показать нашу форму. Если бы я не поставил восклицательный знак, то условие дословно означало бы - "если существует, то показать форму". А это неправильно в нашем случае. Естественно, что вы можете переименовать его в index.php. Если будуту переименовывать файл, то не забудьте переименовать название файла и в строке

. Форма должна ссылаться на эту же страницу, например index.php. В код я добавил заголовок страницы.

Частые ошибки, возникающие при отправке PHP формы с сайта

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

ini_set("display_errors","On");
error_reporting("E_ALL");

Файл send.php должен запускаться только на сервере, иначе код просто не будет работать. Желательно, чтобы это был не локальный сервер, так как он не всегда настроен на отправку данных на внешний почтовый сервер. Если вы запустите код не на сервере, то вам отобразиться код PHP прямо на странице.

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

Еще одна частая ошибка, когда появляется оповещение "Сообщение успешно отправлено", а письмо не приходит на почту. В этом случае нужно внимательно проверить строку:

if (mail("[email protected]", "Заказ с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: [email protected] \r\n"))

Вместо [email protected] должен быть email адрес на который нужно отправить письмо, а вместо [email protected] должен быть существующий email данного сайта. Например для сайта сайт это будет . Только в этом случае письмо с данными из формы будет отправлено.

Вероятно, Вы уже обращали внимание, что при получении писем от некоторых авторов в разделе «кому» стоит список из нескольких десятков имейлов разных людей. Причем ни Вы, ни эти люди не давали своего согласия на то, чтобы эти имейлы были «засвечены». Естественно, кто-то из адресатов, отпишется от данной рассылки (нам всем надоел поток спама на наши почты). Но одно безусловно – все получатели отнесутся к автору рассылки, как к человеку непрофессиональному. И вряд ли согласятся принять его предложение.


Как же сделать так, чтобы не отправлять каждому адресату письмо отдельно и в то же время «не светить всех перед всеми»?
Практически любой почтовый сервис позволяет это сделать.

Рассмотрим эту возможность на примере самой популярной для деловых рассылок почте gmail.com

Обычно для отправки письма вы пользуетесь окном «Написать». Нажав на него, видите новое окно «Новое сообщение», в которое и вставляете все, что необходимо для создания и отправки самого письма.

В окно «Получатели» обычно вставляем имейлы наших адресатов.




Копия означает «точная копия». Это поле используется, когда вы просто хотите отправить письмо кому-то, кто не является основным получателем. Таким образом, вы можете держать человека в курсе, давая ему при этом знать, что отвечать на письмо не обязательно. Но все получатели данного письма видят адреса (и даже имена) друг друга.


Скрытая же копия означает «точная скрытая копия». Она работает так же, как и Копия, но в этом поле все адреса получателей скрыты.

Таким образом, использование этого поля – один из лучших способов отправить письмо большому количеству людей и соблюсти конфиденциальность. А значит, и не испортить отношение с ними. Используя эту возможность, можно вставить до 30 имейлов. А это значит, что одним нажатием кнопки вы можете отправить данное письмо сразу 30 адресатам, не показывая их имейлы.

И еще, при необходимости, можно вставить в тело письма картинку (4 ) или прикрепить файл (5 ).

Именно эта почта дает максимальное количество возможностей для редактирования.



Аналогично можно отправить одновременно нескольким адресатам письмо и на почте yandex.ru.

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

Нажимаете на «Написать» и далее в окне «Кому» (1 ) вставляете имейл первого адресата, а затем выбираете функцию «Копия» (2 ) или «Скрытая копия» (3 ). В зависимости от того хотите ли вы, чтобы все получатели вашего письма увидели все имейлы или сохраняете их право на конфедициальность адресов, выбираете одну из функций. Чтобы добавить каждый следующий имейл в список, необходимо нажать на кнопку с изображением человечка с «плюсиком» перед ним (4 ). Тогда из выпавшего списка можете выбрать своих постоянных адресатов или вписать их имейлы вручную.

Картинки можно загрузить с Яндекс Диска и файлы прикрепить тоже, как обычно.

Нажимаете на кнопку «Написать», появляется окно, в котором при нажатии мышкой в окне «Кому» (1 ), появляется выпадающий список с перечнем ваших постоянных адресатов (2 ). Можете выбрать из этого списка нужного. Или просто вставить желаемый имейл адресата вручную.

Если у вас возникла необходимость пересылать копии некоторых писем в почте Mail.ru на другой почтовый ящик (email), т.е. отправлять не всю почту, а только ту, которая приходит из какого-то определённого адреса или содержит какие-то определённые слова, то по этой подробной инструкции « » настройка займет 3 мин.

Шаг 1. В почте находим во «Входящих» нужное письмо и отмечаем его галочкой, затем в выпадающем меню «Ещё» выбираем «Создать фильтр»:

Шаг 2. Откроется страница с множеством настроек фильтра, чтобы настроить фильтр отправки некоторых писем на другой email ставим галочку в первой строчке «От»и в графу напротив вставляем адрес или его часть, с которого эти письма приходят. Во втором пункте указываем адрес, на который надо пересылать копии. В третьем пункте укажите, что делать с полученным письмом в вашей почте. Дальше введите свой почтовый пароль и жмите «Добавить фильтр»:
Шаг 3. Теперь на указанный вами адрес, автоматически отправляется письмо с подтверждающим пересылку кодом, этот код обязательно надо ввести в соответствующее поле, которое вы найдёте в левом меню «Фильтры». Верхней строчкой будет неподтверждённый адрес пересылки, кликните на эту ссылку и увидите поле для вставки кода:

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

Большинство почтовых клиентов, включая Gmail , Mail.ru , Microsoft Outlook , Mozilla Thunderbird , позволяют поставить нескольких получателей в Копию (на английском языке принята аббревиатура СС ), или Скрытую копию (CCB ). В Копии получатели могут видеть адреса других людей. Во втором случае личность дополнительных адресатов скрыта.

Добавление адреса получателя

Чтобы указать получателя (или получателей) электронного письма, введите его адрес электронной почты в поле Кому (То ):

Некоторые почтовые клиенты позволяют просто вводить имя пользователя в поле, которое затем автоматически заполняется программой.

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

Как создать копию электронного письма

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

Вы можете перечислить получателей электронной почты, просто введя список адресов в поле Копия , которое обычно находится сразу под полем Кому . Каждый в этой цепочке адресатов сможет видеть имена и адреса электронной почты всех других получателей:

Как создать скрытую копию электронного письма

Каждый почтовый клиент (Gmail, Outlook, Mozilla Thunderbird, Yahoo и т. д.) дает возможность отправителю письма обратиться к большому числу людей, не афишируя их данные перед другими пользователям в цепочке электронной почты. Эта функция называется BCC или Скрытая копия . Вы можете скрыть получателей, введя их адреса в поле Скрытая копия вместо использования полей Кому и Копия :

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

Поле Скрытая копия не всегда доступно по умолчанию для всех почтовых клиентов. Например, в Outlook Вам нужно будет зайти в Параметры , чтобы получить доступ к настройке; в Thunderbird нужно будет выбрать эту функцию из раскрывающегося меню; в Gmail нужно нажать кнопку Копия и Скрытая копия ; в Windows Live Mail Вам потребуется одновременно нажать клавиши Alt + B .

Изображение: © Web Hosting - Unsplash.com

Бэкап Mail.ru по сети осуществляется с помощью плагина "E-mail" по протоколу IMAP. Программа Handy Backup обеспечивает прямое копирование почты Mail без использования локальных клиентов и промежуточных сайтов.

Принципы резервного копирования Mail.ru с помощью Handy Backup

Плагин "E-mail" предоставляет доступ с помощью протокола IMAP к любому удалённому серверу почты, поддерживающему этот протокол, в том числе к почтовому сервису mail.ru (backup Mail.ru). Резервная копия почты Mail ru с помощью этого плагина создаётся в автоматическом режиме.

Как сделать бэкап почты Mail.ru с помощью плагина E-mail?

Чтобы сделать бэкап почты Mail.ru автоматизированной задачей Handy Backup, воспользуйтесь, пожалуйста, следующей инструкцией:

  1. Откройте Handy Backup. Вызовите новую задачу с помощью клавиш Ctrl+N или кнопки.
  2. Выберите в мастере созданий задачи резервное копирование данных на Шаге 1.
  3. Перейдите к Шагу 2 и выберите в списке источников данных плагин E-mail .

  1. Щёлкните на плагине дважды, или нажмите кнопку добавления – откроется окно плагина.
  2. В открывшемся диалоге введите данные вашего аккаунта для бэкапа Mail.ru
  3. >

На заметку: полный набор стандартных настроек для бэкапа почты Mail.ru — сервер imap.mail.ru, порт 993, тип подключения SSL/TLS, авторизация "Plain’.

  1. Нажмите ОК – программа установит соединение. Вернитесь в окно плагина.
  2. Отметьте данные для копирования почты mail.

Примечание. Вы можете делать бэкап Mail с точностью до одного сообщения.

  1. Отметив все нужные данные, снова нажмите ОК и вернитесь к Шагу 2.
  2. Продолжайте создание вашей задачи. Подробнее о шагах задачи можно узнать в Руководстве Пользователя .

Скачать

Купить!

Версия 8.1.1 от 16 декабря 2019 . 106 MB
Программа резервного копирования Handy Backup. 1200 RUB за лицензию

Решение Standard содержит весь набор функций для резервного копирования mail.ru и хранения копий почтовых сообщений на популярных носителях данных.

Преимущества бэкапа почты Mail.ru с Handy Backup

Широкий выбор хранилищ данных

Вы можете выбрать на Шаге 3, куда вы сохраните backup почты Mail.ru. К вашим услугам широкий спектр хранилищ, включая локальные и съёмные диски, серверы FTP, сетевые диски и устройства NAS, облака Яндекс.Диск, Google Диск, Dropbox, OneDrive, специальное хранилище HBDrive и т.д.

Защита и сжатие данных

Шифруйте ваши сообщения 128-битным ключом с помощью видоизменённого алгоритма BlowFish. Сжимайте данные в один файл или по отдельности в ZIP-архив. Или оставьте данные неизменными, чтобы просматривать и модифицировать бэкапы mail без восстановления.

Разнообразие возможностей бэкапа Mail

Выбирайте инкрементальное, дифференциальное или смешанное резервное копирование почты mail для экономии времени и сетевого траффика. Храните несколько версий бэкапа mail.ru, снабжённых по необходимости временными метками. Избавляйтесь от устаревших бэкапов.

Вызов других программ до или после задачи

Пользуйтесь возможностью запустить другие задачи, например, почтовый клиент с POP3-протоколом или сборщик мусора, до или после выполнения задачи бэкапа почты Mail.ru. Автоматизируйте копирование почты Mail в рамках вашего рабочего цикла!

Автоматический запуск и повторение задач

Запускайте резервное копирование Mail в определённое время, и повторяйте его в установленные промежутки от месяцев до минут включительно. Привяжите запуск задачи к системному событию или подключению диска USB. Используйте автозапуск пропущенных задач.

Другие возможности управления

Запускайте Handy Backup как службу Windows или как программу в командной строке, чтобы не отвлекать пользователя. Рассылайте уведомления по E-mail о проделанной работе. Пользуйтесь отчётами и журналами для контроля работы. Запускайте задачи вручную с главной панели.

Резервное копирование почты Mail.ru с Handy Backup – полностью автоматизированный, высокоэффективный метод сохранения ваших сообщений. Попробуйте прямо сейчас, загрузив бесплатную 30-дневную пробную версию!

Понравилась статья? Поделитесь ей
Наверх