2011-09-12 19 views
23

tengo este código:Correo PHP: ¿Múltiples destinatarios?

<?php 
include("db.php"); 

$result = mysql_query("SELECT * FROM email"); 

while($row = mysql_fetch_array($result)) 
{ 
$to = $row['address']; 
} 
$subject = "Test mail"; 
$message = "Hello! This is a simple email message."; 
$from = "[email protected]"; 
$headers = "From:" . $from; 
mail($to,$subject,$message,$headers); 
?> 

En mi mesa ("e-mail") tengo varias direcciones. (No están separados por coma.) ¿Cómo podría enviar mi mensaje a todas esas direcciones?

Respuesta

36
while($row = mysql_fetch_array($result)) 
{ 
    $addresses[] = $row['address']; 
} 
$to = implode(", ", $addresses); 

como se especifica en la mail() manual page, la "a" parámetro de la función puede tomar una lista separada por comas de direcciones.

+1

@Amber ¿hay un límite de direcciones de correo electrónico? gracias – mgraph

+2

@mgraph no estoy seguro. Sin embargo, en el RFC 2822 se dice que "cada línea de caracteres DEBE tener no más de 998 caracteres, y DEBERÍA tener un máximo de 78 caracteres, excluyendo el CRLF". http://www.faqs.org/rfcs/rfc2822.html – JeromeJ

6

Separe las direcciones con comas.

$to=array(); 
while($row = mysql_fetch_array($result)) { 
    array_push($to, $row['address']); 
} 

... 

mail(implode(',', $to), $submit, $message, $headers); 
+5

su línea 3 también podría escribirse como $ a [] = $ row ['address']; con muchos menos personajes :) –

0

Acabo de probar los códigos que presentó y antes de usarlos, las personas necesitan saber que usando esta dirección (varias direcciones en el campo 'a'), cada persona en ese correo electrónico puede ver todos los destinatarios.

Además, si usa Bcc, también sabrá la primera persona en la lista.

¡Cuidado! :)

Cuestiones relacionadas