Адрес PHPMailer()


Я не знаю, как следует форматировать данные для функции PHPMailer addAddress; Мне нужно, чтобы электронное письмо было отправлено нескольким получателям, поэтому я попытался

$to = "[email protected],[email protected],[email protected]";
$obj->AddAddress($to);

Но безуспешно. Любая помощь будет оценена по достоинству.

Author: Brian Tompsett - 汤莱恩, 2009-11-20

5 answers

Вам нужно вызвать функцию 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. Я надеюсь, что это поможет.

 61
Author: doamnaT, 2014-06-30 09:23:15

Вам нужно вызвать метод 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);
}

Еще лучше, добавьте их в качестве получателей копий.

$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);
}
 9
Author: Mahendra Jella, 2014-06-19 10:25:20

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

$to_array = explode(',', $to);
foreach($to_array as $address)
{
    $mail->addAddress($address, 'Web Enquiry');
}
 3
Author: Purple Tentacle, 2016-02-07 23:20:06
foreach ($all_address as $aa) {
    $mail->AddAddress($aa); 
}
 2
Author: user2720626, 2014-06-02 12:26:56

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

Посмотрите это в действии с помощью 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);}
    }
} 
?>

Таким образом, в основном он создает новое текстовое поле ввода при каждом нажатии с именем "электронные письма[]".

[], добавленный в конце, делает его массивом при публикации.

Затем мы проходим через каждый элемент массива с "foreach" на стороне PHP добавляет:

    $mailer->AddAddress($postEmail);
 0
Author: Tarik, 2017-03-28 15:46:05