PHP отправляет почту на несколько адресов электронной почты
Какой код мне нужно изменить в этом PHP script, чтобы отправить одно письмо на более чем 20 адресов электронной почты?
<?php
$email_to = "[email protected]"; // your email address
$email_subject = "Contact Form Message"; // email subject line
$thankyou = "thankyou.htm"; // thank you page
?>
Пожалуйста, дайте мне пример. Спасибо.
Ответы
Ответ 1
Для удобства чтения в коде используется массив и вставляем его в строку, разделенную запятыми: -
$recipients = array(
"[email protected]",
// more emails
);
$email_to = implode(',', $recipients); // your email address
$email_subject = "Contact Form Message"; // email subject line
$thankyou = "thankyou.htm"; // thank you page
Ответ 2
Просто разделите их запятой, например $email_to = "[email protected], [email protected], John Doe <[email protected]>"
.
Ответ 3
Ваш
$email_to = "[email protected], [email protected], [email protected]"
Нужно быть списком адресов электронной почты с разделителями-запятыми.
mail($email_to, $email_subject, $thankyou);
Ответ 4
Следующий код выполнит задачу....
<?php
$contacts = array(
"[email protected]",
"[email protected]",
//....as many email address as you need
);
foreach($contacts as $contact) {
$to = $contact;
$subject = 'the subject';
$message = 'hello';
mail($to, $subject, $message, $headers);
}
?>
Ответ 5
Что-то вроде этого:
mail("[email protected] , [email protected] , [email protected]", "Test e-mail", "Hi, this is a test message!");
http://myphpform.com/php-form-multiple-recipients.php
Ответ 6
Лучший способ - сохранить все электронные письма в базе данных.
Вы можете попробовать этот код, предполагая, что у вас есть электронная почта в базе данных
/*Your connection to your database comes here*/
$query="select email from yourtable";
$result =mysql_query($query);
/вышеуказанный код зависит от того, где вы сохранили свои адреса электронной почты, поэтому убедитесь, что вы заменили его своими параметрами /
Затем вы можете сделать строку, разделенную запятой, из результата,
while($row=$result->fetch_array()){
if($rows=='') //this prevents from inserting comma on before the first element
$rows.=$row['email'];
else
$rows.=','.$row['email'];
}
Теперь вы можете использовать
$to = explode(',',$rows); // to change to array
$string =implode(',',$cc); //to get back the string separated by comma
С помощью вышеуказанного кода вы можете отправить электронное письмо таким образом
mail($string, "Test", "Hi, Happy X-Mas and New Year");
Ответ 7
В функции почты вы можете использовать столько дескрипторов, сколько хотите, в $emailto paramater, разделенных запятой.
Ответ 8
Очень плохая практика отправлять все адреса электронной почты всем получателям; вы должны использовать Bcc (слепые копии с копией).
$from = "[email protected]";
$recipList = "mailaddress1,mailaddress2,etc";
$headers = "MIME-Version: 1.0\nContent-type: text/html; charset=utf-8\nFrom: {$from}\nBcc: {$recipList}\nDate: ".date(DATE_RFC2822);
mail(null,$subject,$message,$headers); //send the eail
Ответ 9
$recipients = "[email protected],[email protected],[email protected],[email protected]";
$email_array = explode(",",$recipients);
foreach($email_array as $email)
{
echo $to = $email;
$subject = 'the subject';
$message = 'hello';
$headers = 'From: [email protected]' . "\r\n" .
'Reply-To: [email protected]' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
}
Ответ 10
Я думаю, что следующий код будет работать.
$tos = array('[email protected]', '[email protected]');
foreach ($tos as $to){
$ok = mail ($to, $subject, $body, $from);
}
if ($ok) {
echo "Message Send";
} else {
echo "Error";
}
Ответ 11
Программная отправка представленной формы на несколько адресов электронной почты является возможной, однако наилучшей практикой для этого является создание списка рассылки. В коде адрес списка будет размещен, и любые изменения или обновления по адресам электронной почты в список получателей могут быть выполнены без изменения кода.