Pergunta

Não sei como os dados devem ser formatados para a função addaddress phpmailer; Eu preciso que o email seja enviado para vários destinatários, então tentei

$to = "me@domain.com,you@domain.net,she@domain.it";
$obj->AddAddress($to);

Mas sem sucesso. Qualquer ajuda será apreciada.

Foi útil?

Solução

Você precisa ligar para o AddAddress Função uma vez para cada endereço de e-mail para o qual deseja enviar. Existem apenas dois argumentos para esta função: recipient_email_address e recipient_name. O nome do destinatário é opcional e não será usado se não estiver presente.

$mailer->AddAddress('recipient1@domain.com', 'First Name');
$mailer->AddAddress('recipient2@domain.com', 'Second Name');
$mailer->AddAddress('recipient3@domain.com', 'Third Name');

Você pode usar uma matriz para armazenar os destinatários e depois usar um for ciclo. Espero que ajude.

Outras dicas

Você precisa ligar para o AddAddress método uma vez para cada destinatário. Igual a:

$mail->AddAddress('person1@domain.com', 'Person One');
$mail->AddAddress('person2@domain.com', 'Person Two');
// ..

Para facilitar as coisas, você deve percorrer uma matriz para fazer isso.

$recipients = array(
   'person1@domain.com' => 'Person One',
   'person2@domain.com' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddAddress($email, $name);
}

Melhor ainda, adicione -os como destinatários de cópia de carbono.

$mail->AddCC('person1@domain.com', 'Person One');
$mail->AddCC('person2@domain.com', 'Person Two');
// ..

Para facilitar as coisas, você deve percorrer uma matriz para fazer isso.

$recipients = array(
   'person1@domain.com' => 'Person One',
   'person2@domain.com' => 'Person Two',
   // ..
);
foreach($recipients as $email => $name)
{
   $mail->AddCC($email, $name);
}

Algumas ótimas respostas acima, usando essa informação aqui está o que fiz hoje para resolver o mesmo problema:

$to_array = explode(',', $to);
foreach($to_array as $address)
{
    $mail->addAddress($address, 'Web Enquiry');
}
foreach ($all_address as $aa) {
    $mail->AddAddress($aa); 
}

Todas as respostas são ótimas. Aqui está um exemplo de caso de uso para múltiplos endereço de adição: a capacidade de adicionar tantos emails que você deseja sob demanda com um formulário da Web:

Veja em ação com o JSFiddle aqui(exceto o processador 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);}
    }
} 
?>

Então, o que faz basicamente é gerar uma nova caixa de texto de entrada em cada clique com o nome "e -mails [].

O [] adicionado no final faz dele uma matriz quando publicado.

Em seguida, passamos por cada elemento da matriz com "foreach" no lado do PHP, adicionando o:

    $mailer->AddAddress($postEmail);
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top