PHPMailer AddAddress()
Я не знаю, как данные должны быть отформатированы для функции AddAddress PHPMailer; Мне нужно отправить электронное письмо нескольким получателям, поэтому я попробовал
$to = "[email protected],[email protected],[email protected]";
$obj->AddAddress($to);
но без успеха. Любая помощь будет оценена.
Ответы
Ответ 1
Вам нужно вызвать функцию AddAddress
один раз для каждого адреса электронной почты, который вы хотите отправить. Для этой функции есть только два аргумента: recipient_email_address
и recipient_name
. Имя получателя является необязательным и не будет использоваться, если оно отсутствует.
$mailer->AddAddress('[email protected]', 'First Name');
$mailer->AddAddress('[email protected]', 'Second Name');
$mailer->AddAddress('[email protected]', 'Third Name');
Вы можете использовать массив для хранения получателей, а затем использовать цикл for
. Я надеюсь, что это помогает.
Ответ 2
Вам нужно вызвать метод AddAddress
один раз для каждого получателя. Например:
$mail->AddAddress('[email protected]', 'Person One');
$mail->AddAddress('[email protected]', 'Person Two');
// ..
Чтобы сделать все просто, вы должны пропустить массив, чтобы сделать это.
$recipients = array(
'[email protected]' => 'Person One',
'[email protected]' => 'Person Two',
// ..
);
foreach($recipients as $email => $name)
{
$mail->AddAddress($email, $name);
}
Еще лучше, добавьте их в качестве получателей Carbon Copy.
$mail->AddCC('[email protected]', 'Person One');
$mail->AddCC('[email protected]', 'Person Two');
// ..
Чтобы сделать все просто, вы должны пропустить массив, чтобы сделать это.
$recipients = array(
'[email protected]' => 'Person One',
'[email protected]' => 'Person Two',
// ..
);
foreach($recipients as $email => $name)
{
$mail->AddCC($email, $name);
}
Ответ 3
Некоторые отличные ответы выше, используя эту информацию, вот что я сделал сегодня, чтобы решить ту же проблему:
$to_array = explode(',', $to);
foreach($to_array as $address)
{
$mail->addAddress($address, 'Web Enquiry');
}
Ответ 4
foreach ($all_address as $aa) {
$mail->AddAddress($aa);
}
Ответ 5
Все ответы велики. Вот пример использования для нескольких адресов:
Возможность добавлять по электронной почте столько запросов по электронной почте:
Посмотрите в действии с jsfiddle здесь
(кроме процессора php)
### Send unlimited email with a web form
# Form for continuously adding e-mails:
<button type="button" onclick="emailNext();">Click to Add Another Email.</button>
<div id="addEmail"></div>
<button type="submit">Send All Emails</button>
# Script function:
<script>
function emailNext() {
var nextEmail, inside_where;
nextEmail = document.createElement('input');
nextEmail.type = 'text';
nextEmail.name = 'emails[]';
nextEmail.className = 'class_for_styling';
nextEmail.style.display = 'block';
nextEmail.placeholder = 'Enter E-mail Here';
inside_where = document.getElementById('addEmail');
inside_where.appendChild(nextEmail);
return false;
}
</script>
# PHP Data Processor:
<?php
// ...
// Add the rest of your $mailer here...
if ($_POST[emails]){
foreach ($_POST[emails] AS $postEmail){
if ($postEmail){$mailer->AddAddress($postEmail);}
}
}
?>
Итак, в основном это создание нового текстового поля ввода при каждом нажатии с именем "emails []".
Добавленный в конце [] добавляет массив при публикации.
Затем мы проходим через каждый элемент массива с "foreach" на стороне PHP, добавляя:
$mailer->AddAddress($postEmail);