slogin.info

ihc 468x60 1 1
Звезда активнаЗвезда активнаЗвезда активнаЗвезда активнаЗвезда активна5 / 5
 
Автор: Администратор
Просмотров: 3327
Теги: php, mail, несколько адресатов, отправка форм

В этой статье мы разберем то, как можно отсылать данные с формы на две, а то и больше e-mail адресов.

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

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

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

Рассмотрим эти способы подробнее.

Способ первый. Общие получатели.

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

Возьмем для примера код из нашей статьи "Простая форма связи своими руками".

Всё, что нам нужно сделать, это добавить новое поле в форму, которое будет задавать второй e-mail адрес получателя:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
	<title>Страница</title>
	<link rel="stylesheet" href="/../css/template.css" type="text/css" />
</head>
<body>
	<form action="send.php" method="get">
		<input type="text" placeholder="Введите сюда e-mail" name="e-mail"><br>
		<input type="text" placeholder="Введите сюда второй e-mail" name="e-mail2"><br>
		<input type="text" placeholder="Введите сюда ваше имя" name="name"><br>
		<input type="submit" value="Нажмите, чтобы отправить письмо">
	</form>
</body>
</html>

И изменить обработчик:

<?php
	//Получаем данные из глобальной переменной $_GET, так как мы передаем данные методом GET
	$name = $_GET['name']; // Вытаскиваем имя в переменную
	$email1 = $_GET['e-mail']; // Вытаскиваем почту в переменную
	$email2 = $_GET['e-mail2']; // Вытаскиваем почту в переменную
	$message = "Поздравляем, $name, отправка сообщений на почту $email работает"; // Формируем сообщение, отправляемое на почту
	$to = "$email1, $email2"; // Задаем получателя письма
	$from = "noreply-site.web.cofp.ru"; // От кого пришло письмо
	$subject = "Письмо с примера простой формы сайта web.cofp.ru"; // Задаем тему письма
	$headers = "From: $from\r\nReply-To: $to\r\nContent-type: text/html; charset=utf-8\r\n"; // Формируем заголовок письма (при неправильном формировании может ломаться кодировка и т.д.)
	if (mail($to, $subject, $message, $headers)) { // При помощи функции mail, отправляем сообщение, проверяя отправилось оно или нет
		echo "<p>Сообщение успешно отправлено</p>"; // Отправка успешна
	}
	else {
		echo "<p>Что-то пошло не так, как планировалось</p>"; // Письмо не отправилось
	}
?>

Стоит обратить внимание на строчку 5, в которой мы получаем второй адрес и строчку 7, где мы формируем список получателей письма (у нас их двое в данном случае).

Результат работы этого скрипта можно посмотреть на демо-странице:

demo

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

Способ второй. Анонимные получатели

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

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

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

Обработчик для передачи сообщения двум людям будет выглядеть так:

<?php
	//Получаем данные из глобальной переменной $_GET, так как мы передаем данные методом GET
	$name = $_GET['name']; // Вытаскиваем имя в переменную
	$to1 = $_GET['e-mail']; // Вытаскиваем почту в переменную
	$to2 = $_GET['e-mail2']; // Вытаскиваем вторую почту в переменную
	$message = "Поздравляем, $name, отправка сообщений на почту $email работает"; // Формируем сообщение, отправляемое на почту
	$from = "noreply-site.web.cofp.ru"; // От кого пришло письмо
	$subject = "Письмо с примера простой формы сайта web.cofp.ru"; // Задаем тему письма
	$headers = "From: $from\r\nReply-To: $to\r\nContent-type: text/html; charset=utf-8\r\n"; // Формируем заголовок письма (при неправильном формировании может ломаться кодировка и т.д.)
	if (!mail($to1, $subject, $message, $headers)) {
		echo "Отправить сообщение на почту $to не удалось";
	}
	if (!mail($to2, $subject, $message, $headers)) {
		echo "Отправить сообщение на почту $to не удалось";
	}
?>

Результат работы этого способа смотрите на демо-странице(отличается от первой):

demo

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

Добавить комментарий

Авторизоваться с помощью:

     


Защитный код
Обновить

Поиск по сайту

Топ 10 активных пользователей

  • Имя пользователя Баллы
  • gawk
    44.20
  • hr@proovelab
    15.00
  • intuit89
    6.00
  • Varvarka
    4.00
  • ZOMRO
    3.20
  • Akyla58
    3.00
  • AnnaOl
    3.00
  • dimasik_3557
    3.00
  • ErcardSa
    3.00
  • Galinamuh
    3.00
 

Рекламные ссылки

IHC

Пожертвования

icon donate

Yandex.Money: 410011571748395

Webmoney:

R362907776401 (Рубли)

Z410919458006 (Доллары)

ihc 468x60 1 1

Похожие материалы

Языки программирования сайтов

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

Теги:

css, html, javascript, php, веб

Комментариев: 0 Подробнее
Простая форма обратной связи своими руками.

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

Теги:

php, form, simple, форма, send

Комментариев: 0 Подробнее
Как написать скрипт для проведения собственного тестирования на PHP?

В этой статье речь пойдет о реализации простого тестирования при помощи PHP.

Теги:

php, тестирование, test, скрипт

Комментариев: 0 Подробнее
Как подключиться к Microsoft SQL Server через PHP

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

Теги:

php, Microsoft, SQL, Server, driver

Комментариев: 0 Подробнее

Последнее с форума

Urii-Polyakov-odnoklassniki аватар
Мы – команда разработчиков, дизайнеров и SEO-специалистов, которая любит свое дело и умеет создавать...
Перейти в тему
ZOMRO аватар
Оптимальные VDS/VPS Это сбалансированное предложение в соотношение цена-качество-количество ресурсо...
Перейти в тему
ZOMRO аватар
Скидка 50% на первый месяц Хотите получить уникальную скидку 50% на первый месяц пользования нашим ...
Перейти в тему

Последние статьи

Javascript функции

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

Ссылка на телефон

В этой статье мы рассмотрим простой и обычный способ создания ссылки на телефон.

CPA сети 30.01.2017
CPA сети

Сегодня мы подробно рассмотрим тему зарабатка на своих проектах (т.е. это не обязательно сайты) при помощи CPA сетей.