Негодное отправить копию на указанный e mail. Простейшая форма отправки данных на почту при помощи HTML и PHP. Кому. Копия. Скрытая копия
К удивлению, многие люди, когда им требует отправить письмо сразу нескольким людям, просто перечисляют адреса в поле "Кому", это нормально, когда это письмо адресовано вашим коллегам или друзьям, но вот при рассылке писем группе клиентов, - вы таким образом показываете всем адреса и других получателей, фактически раскрывая свою адресную базу.
Любому из клиентов достаточно переслать это письмо вашему конкуренту и ваши контакты тут же утекут.
Странно, но многие далеко не глупые люди, с удивлением узнают, что если вам нужно отправить письмо множеству адресатов, чтобы они не знали друг о друге то для этого существует поле "Скрытая копия".
Например, для mail.ru это будет выглядеть так:
И так еще раз коротко: указали адреса в "кому" - всем видно кому вы отправили письма, указали в "скрытая копия" - каждый думает что письмо только ему.
И каждый получатель получит письмо где в поле "кому" будет только его адрес . Для других программ, если вы не можете найти где указать скрытую копию, то попросите кого-нибудь вам показать. Еще маленький момент, обязательно нужно указать один адрес в поле "кому", большинство программ или почтовых серверов вам не дадут отправить письмо без этого параметра.
И так, когда речь идет о рассылке предложения, новостей группе ваших клиентов - здесь практика использования скрытой копии однозначна, вы должны скрывать вашу адресную базу. Интересный момент с рассылкой письма вашим коллегам, здесь рекомендуют поступать по ситуации, например рассылка письма с просьбой прислать предложения (например по совершенствованию обслуживания клиентов) и если каждый коллега увидит, что такое же письмо получили и другие люди, то скорей всего отвечать не будет - понадеется на других, значит нужно использовать скрытую копию. Если же это поручение выполнить, то например указание в "кому" начальника вашего коллеги - просто сотворит чудеса, и ваше поручение будет выполнено.
Отдельный вопрос с поставщиками. С одной стороны указание всех получателей в копии, должно показать поставщику, что у вас есть выбор и он должен вам предложить хорошие цены. С другой стороны, менеджер получивший ваше письмо, видя что прислано не только ему, скорей всего отнесется к вашему запросу "прохладно". Лично по моему мнению, считаю что и в случае с поставщиками нужно использовать скрытую копию, хотя бы для защиты коммерческой тайны, но больше скорей для хороших отношений с менеджером поставщика.
Можете почитать недавний случай ошибки специалиста, когда все получатели увидели и других адресатов: Всем чмоки в этом чате , там правда народ солидный был - директора, но все же спама многие получили в ответ.
Ну и как всегда обсуждение в комментариях приветствуется.
Одной из самых востребованных функций на сайте является форма заявки или заказа, данные из которой отправляются на почту владельцу сайта. Как правило такие формы являются простыми и состоят из двух трех полей для ввода данных. Как же создать такую форму заказа? Здесь потребуется использование языка разметки HTML и языка программирования PHP.
Язык разметки HTML сам по себе несложен, нужно всего лишь разобраться в том как и где ставить те или иные теги. С языком программирования PHP все немного сложнее.
Для программиста создать такую форму не составит труда, а вот HTML верстальщику может показаться сложным некоторые действия.
Создаем форму отправки данных в html
Первая строка будет следующей
Теперь соберем все вместе.
Теперь сделаем так, чтобы поля в форме стали обязательными для заполнения. Имеем следующий код:
Создаем файл, принимающий данные из 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. Если будуту переименовывать файл, то не забудьте переименовать название файла и в строке