Плут отправить копию на указанный e mail. Простейшая форма отправки данных на почту при помощи 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 $fio;

Вторая строка здесь нужна для того, чтобы разделить вывод переменных 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 данного сайта. Например для сайта сайт это будет . Только в этом случае письмо с данными из формы будет отправлено.

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

Вложенный или прикрепленный файл (аттачмент) — это какой-то файл с компьютера, который мы добавляем к письму для пересылки его по электронной почте.

Как прикрепить файл к письму и отправить его

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

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

Технология пересылки файлов следующая:

  1. Открываем свой электронный ящик.
  2. Пишем письмо: указываем адрес почты получателя, тему и, если необходимо, печатаем сообщение.
  3. Нажимаем специальную кнопку для добавления файла.
  4. В открывшемся окошке выбираем файл с компьютера.
  5. Отправляем письмо, нажав на соответствующую кнопку.

Пример

1. Открываю свой электронный ящик и нажимаю на кнопку написания письма.

Яндекс.Почта: Mail.ru: Gmail.com:

2. Печатаю адрес того, кому хочу отправить файл, и указываю тему.

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

3. Для прикрепления файла нажимаю на специальную кнопку вверху или внизу (над или под частью для ввода текста).

Яндекс.Почта: Mail.ru: Gmail.com:

4. Открывается небольшое окошко с файлами и папками моего компьютера. В нем я должен найти то, что хочу отправить.

Допустим, мне нужно переслать документ, который находится на моем компьютере в Локальном диске D в папке Договоры. Значит, в окошке открываю Локальный диск D:

И открываю папку Договоры:

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

Окошко исчезает, а мой документ появляется над или под кнопкой прикрепления.

Сразу после этого мое сообщение с вложенным документом уйдет по указанному адресу. Вот как его увидит получатель:

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

Открыв письмо, получатель увидит и текст, и документ, которой сможет посмотреть или скачать на свой компьютер.

Как добавить несколько файлов к письму

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

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

А что делать, если их не одни-два, а больше десяти? Можно ли добавить папку целиком, а не каждый файл по отдельности?

К сожалению, отправить папку по электронной почте нельзя. Но ее можно заархивировать и прикрепить к письму.

Сделать это можно прямо в окошке, через которое добавляем файл для отправки. Щелкаем правой кнопкой мышки по папке, из списка выбираем 7-Zip или WinRAR и создаем архив.

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

Архив, в котором находится нужная для пересылки папка, прикрепляется к письму. Остается только его отправить.

Нюансы

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

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

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

В итоге отправится один файл, а не десять. Моему другу будет проще его скачать на компьютер и разархивировать, чем смотреть (скачивать) каждую фотографию по отдельности.

Перед пересылкой фотографий по электронной почте их следует сжимать (уменьшать размер).

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

Подробнее о том, зачем это нужно и как сделать, Вы узнаете из урока «Сжатие фото ».

Задание

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

Недавно я получил эту работу, поэтому, хотя я бы разделил:

Отправка всей исходящей почты в Отправленные папки с postfix и cyrus imap.

Сделайте postfix отправьте копии экземпляров всех исходящих писем на специальную "отправленную" почтовая учетная запись. Используйте сито на этой специальной учетной записи, чтобы перенаправить все электронные письма в папку "Отправленные", связанные с учетной записью.

    Создайте учетную запись пользователя электронной почты для отправленных

    Самый простой способ сделать это - создать новую учетную запись unix для отправленных, установка оболочки в /bin/false, чтобы никто не мог регистрироваться в:

    Host$ sudo useradd sent host$ sudo chsh -s /bin/false sent

    Настроить imap для отправленного пользователя

    Используя cyradm, мы создаем новый почтовый ящик (т.е. пользователь) и даем этому пользователю добавить доступ ко всем нашим папкам "Отправленные" imap:

    Host$ $ cyradm -user cyrus localhost Password: localhost> createmailbox user.sent localhost> setaclmailbox user.%.Sent sent append Setting ACL on user.userx.Sent...OK. Setting ACL on user.usery.Sent...OK. . . . Setting ACL on user.userz.Sent...OK. localhost> exit

    Создайте сито script для отправленной учетной записи

    Этот script перенаправляет всю входящую электронную почту на отправленную учетную запись, на Отправлена ​​папка в папке "Входящие" отправителей.

    Мой script называется sent.sieve и выглядит примерно так:

    # Sieve script for sent. If outgoing email is bcc"ed to this account, # this sieve script will redirect it to the sender Sent folder require ["fileinto"]; if address:is:localpart "From" "userx" { fileinto "user.userx.Sent"; } elsif address:is:localpart "From" "usery" { fileinto "user.usery.Sent"; } elsif address:is:localpart "From" "userz" { fileinto "user.userz.Sent"; }

    Вам нужно будет ввести запись для каждого из ваших пользователей (userx, usery, userz в примере выше). Я не смог найти лучший способ сделать это. Предложения приветствуются [email protected]

    Установите сито script следующим образом:

    Host$ sieveshell localhost -user=sent -a=cyrus Password: > put sent.sieve > activate sent.sieve > quit

    Настроить сопоставление bcc для postfix

    В постфиксном каталоге (/etc/postfix на debian) создайте файл с именем bcc_map выглядит следующим образом:

    # copy all locally sent mail to the sent account @yourdomain.com [email protected]

    Скомпилируйте это в хэш файл постфикса, используя:

    Host$ sudo postmap bcc_map

    Добавьте следующую конфигурацию в файл конфигурации postfix main.cf:

    Sender_bcc_maps = hash:/etc/postfix/bcc_map

    И сделайте postfix перезагрузите его конфигурацию:

    host $sudo/etc/init.d/postfix reload

    Тестирование и отладка

    Отправьте письмо и проверьте, что оно скопировано в папку Sent.

    В случае возникновения проблем вы должны проверить журналы cyrus и postfix (все регистрируются на /var/log/syslog на моем хосте debian). Опечатки и неправильные разрешения доступа обычно приводят к тому, что некоторые подсказки отправляются на журналы.

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

Хотите узнать как стабильно зарабатывать в Интернете от 500 рублей в день?
Скачайте мою бесплатную книгу
=>>

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

При этом с помощью e-mail можно направлять письма с вложениями в виде различных текстовых документов, презентаций, фотографий, видео и другое. Конечно весь процесс по отправке электронного письма с вложением довольно прост.

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

Как отправить документ по электронной почте

Несмотря на множество различных сервисов, предоставляющих возможность отправки писем в электронном виде через Интернет (Яндекс.Почта, Gmail, Mail.ru, Yahoo, Rambler и другие), все они работают по одному и тому же алгоритму.

Только прикрепление файла на таких сервисах может немного различаться. Но в целом для отправки электронного письма с вложением можно придерживаться следующего алгоритма действий:

  • Сначала нужно войти на свой аккаунт на сервисе и нажать на «Написать» или иную кнопку, предусмотренную почтовым сервисом для написания письма в электронном виде.
  • Затем указываете в строке «Кому» электронный адрес почты адресата.
  • При необходимости в поле «Тема» можно указать тематику вашего письма.
  • Далее, кроме обычного текста, если требуется отправка документа или иного файла с компьютера, нужно найти инструмент, который за это отвечает на используемом вами сервисе и нажать на него. Например, если использовать для этих целей Яндекс.Почту, Gmail или Yahoo, тогда нужно кликнуть по значку в виде канцелярской скрепки, а на Mail.ru и Rambler имеется кнопка «Прикрепить файл».
  • После того, как найдете документ, который требуется отправить, кликаете по нему мышкой, чтобы его выделить и нажимаете на кнопку «Открыть».
  • После загрузки файлов на почтовый сервис, проверяете правильность оформления письма (кому отправляете и что именно). Если документов больше чем нужно или выбрали не то, что нужно, то рядом с ним, как правило, с правой стороны появляется значок корзины, нажав на который происходит удаление ненужного файла. Чтобы добавить документ, вновь нажимаете либо на скрепку, либо на «Прикрепить файл».
  • Для отправки электронного письма адресату, кликаете по кнопке «Отправить».

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

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

Отправить ссылку

Если ваш документ хранится на облачных сервисах, таких как Гугл Диск, Яндекс Диск, и другие, или вы создали документ в Гугл Доке, то можно отправить ссылку на документ.

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

Ворд

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

Инструкция:


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

Теперь, после создания или редактирования документа, жмите на этот значок. Вам потребуется только указать электронную почту получателя, и документ отправиться по указанному адресу.

Как отправить документ по электронной почте, итог

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

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

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

Доброго времени! Сегодня мы поговорим о резервном копировании СМС, путем отправки всех сообщений со смартфона на электронную почту. Это может потребоваться как просто в целях сохранения переписки, так и для дальнейшей обработки сообщений, например поиска в сообщениях нужной информации (контактов, имен, цен и прочего) сторонними приложениями, которые в свою очередь работают с E-Mail. Разберем вариант такого копирования с использованием смартфона работающего на Android.

Создаем почтовый ящик

Для отправки и сохранения всех сообщений на E-Mail, для начала нужно зарегистрировать почтовый ящик, для этого отлично подойдет почта от yandex.ru . Можно также использовать свой действующий почтовый ящик, но я рекомендую зарегистрировать новый. Во первых со временем в нем скопиться большое число СМС сообщений, которые могут мешать при работе с обычными письмами, а во вторых в случае если вы будите подключать почтовый ящик к стороннему сервису для аналитики, не указывать в нем логин и пароль от основного E-Mail.

Устанавливаем на смартфон с Android приложение SMS Backup +

Для отправки всех SMS сообщений на почтовый ящик, потребуется установить и настроить специальное приложение SMS Backup +, скачать которое можно на сайте play.goole.com или apk-dl.com (альтернатива для смартфонов не использующих Google Play) или .

Приложение протестировано на Android: 3.xx, 4.xx, 5.xx, 6.xx; Заявлена поддержка версии 2.xx.

Настраиваем SMS Backup +

  1. Запускаем приложение;
  2. После запуска приложения, в раскрывшемся меню выбираем пункт: Advanced settings;
  3. Далее переходим в Backup settings;
  4. Устанавливаем галочки на Backup SMS и Email subject prefix, снимаем галочки с Backup MMS, Backup Call log (MMS и история звонков нам не нужны, хотя их вы тоже можете резервировать);
  5. Возвращаемся в предыдущее меню и переходим в раздел IMAP Server settings;
  6. Выбираем пункт меню Authentication,

    устанавливаем значение параметра в Plain text;

  7. Выбираем пункт меню Server address, прописываем значение: imap.yandex.ru:993

  8. Выбираем пункт меню Security прописываем значение: SSL

  9. Выбираем пункт меню Login (You IMAP account) указываем логин, затем выбрав пункт меню Password (You IMAP account password) указываем пароль от yandex.ru почты;
  10. В главном меню устанавливаем галочку на Auto backup;
  11. Далее переходим в Auto backup settings, выбираем пункт меню Regular schedule и устанавливаем временной интервал, с периодичностью которого СМС будут отправлять на указанный нами аккаунт почтового ящика (например каждые 2 часа).

Приложение SMS Backup + позволяет не только делать резервные копии на E-Mail, но и восстанавливать сообщения с него. Соответствующие настройки восстановления можно найти в разделе Advanced settings -> Restore settings.

После отправки сообщений на E-Mail, все они будет размещены в папке под названием: SMS.

Анализируем СМС переданные на Email

После получения списка СМС на адрес электронной почты, можно с помощью специального программного обеспечения анализировать содержащиеся в них данные. Например можно отслеживать СМС от банка с сообщениями о денежных поступлениях и списаниях, на основании чего вести финансовый учет в автоматическом режиме. Подобное решение реализовано мною для «сайта совместных покупок», когда все СМС сообщения от Банка полученные Организаторами СП собираются в одном месте, анализируются и на основании их, система в панели управления выводит данные о том — какой из пользователей сделавший заказ, произвел оплату.