Я не знаю, как данные должны быть отформатированы для функции AddAddress PHPMailer; Мне нужно, чтобы письмо было отправлено нескольким получателям, поэтому я попробовал
$to = "me@domain.com,you@domain.net,she@domain.it"; $obj->AddAddress($to);
но без успеха. Любая помощь будет оценена.
Вам нужно вызвать функцию AddAddress
один раз для каждого адреса электронной почты, который вы хотите отправить. Для этой функции есть только два аргумента: recipient_email_address
и имя recipient_name
. Имя получателя является необязательным и не будет использоваться, если оно отсутствует.
$mailer->AddAddress('recipient1@domain.com', 'First Name'); $mailer->AddAddress('recipient2@domain.com', 'Second Name'); $mailer->AddAddress('recipient3@domain.com', 'Third Name');
Вы можете использовать массив для хранения получателей, а затем использовать цикл for
. Я надеюсь, что это помогает.
Вам нужно вызвать метод AddAddress
один раз для каждого получателя. Вот так:
$mail->AddAddress('person1@domain.com', 'Person One'); $mail->AddAddress('person2@domain.com', 'Person Two'); // ..
Чтобы все было просто, вы должны пропустить массив, чтобы сделать это.
$recipients = array( 'person1@domain.com' => 'Person One', 'person2@domain.com' => 'Person Two', // .. ); foreach($recipients as $email => $name) { $mail->AddAddress($email, $name); }
Еще лучше добавить их как получателей Carbon Copy.
$mail->AddCC('person1@domain.com', 'Person One'); $mail->AddCC('person2@domain.com', 'Person Two'); // ..
Чтобы все было просто, вы должны пропустить массив, чтобы сделать это.
$recipients = array( 'person1@domain.com' => 'Person One', 'person2@domain.com' => 'Person Two', // .. ); foreach($recipients as $email => $name) { $mail->AddCC($email, $name); }
Некоторые замечательные ответы выше, используя эту информацию, вот что я сделал сегодня, чтобы решить ту же проблему:
$to_array = explode(',', $to); foreach($to_array as $address) { $mail->addAddress($address, 'Web Enquiry'); }
foreach ($all_address as $aa) { $mail->AddAddress($aa); }
Все ответы велики. Вот пример использования для множественного адреса добавления. Возможность добавлять столько электронной почты, которое вы хотите по запросу с помощью веб-формы:
См. Его в действии с 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);