Foros del Web » Programando para Internet » PHP »

Envio de mail a varios usuarios de una Base de datos

Estas en el tema de Envio de mail a varios usuarios de una Base de datos en el foro de PHP en Foros del Web. Amigos: esta es mi primera pregunta en el foro. Mi problemilla radica en lo siguiente. Tengo una base de datos en la cual 2 de ...
  #1 (permalink)  
Antiguo 07/03/2009, 08:59
 
Fecha de Ingreso: marzo-2009
Mensajes: 1
Antigüedad: 15 años, 1 mes
Puntos: 0
Envio de mail a varios usuarios de una Base de datos

Amigos:

esta es mi primera pregunta en el foro.
Mi problemilla radica en lo siguiente. Tengo una base de datos en la cual 2 de sus campos son Nombre y Mail.

El problema esta en que si uso el siguiente codigo:

mysql_connect('localhost','user','pass') or die ("No Conecta");
$sql = "SELECT nombre, mail FROM tabla";
$result = mysql_db_query("base",$sql) or die ("No Modificado");

while ($row = mysql_fetch_array($result)) {

$header .= 'From: ' . $form_send . " \r\n";
$header .= "X-Mailer: PHP/" . phpversion() . " \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";
$mensaje .= "Mensaje: " . $_POST['mensaje'] . " \r\n\r\n";
$mensaje .= "Enviado el " . date('d/m/Y', time());
$para = $row["mail"];
$asunto = $_POST['asunto'];
mail($para, $asunto, utf8_decode($comentarios), $header);

//echo $para;
//echo $asunto;
//echo $mensaje;

//echo 'conf_formgral.html';
}
?>

El mail es enviado correctamente al mail de cada uno de los Usuarios.
Pero si en la linea mail cambio de esta manera:

mail($para, $asunto, $mensaje, $header);

Lo que hace es al primer registro de la base le manda el correo bien, pero al segundo el contino del mail esta por 2 y el terrcero por 3 y asi va creciendo.

Alguien me puede decir por que?

desde ya muchas gracias
  #2 (permalink)  
Antiguo 07/03/2009, 09:04
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Envio de mail a varios usuarios de una Base de datos

Es porque cada vez que el bucle se repite concatenas los datos sin borrarlos, deberías borrar las variables $header y $mensaje luego de enviar el mail, para luego volver a utilizarlos. O, mejor aún, definir sus valores fuera del bucle while, ya que son siempre los mismos.

P.S.: La función mysql_db_query() es obsoleta, mejor usa mysql_query(). Véase: http://www.php.net/mysql_db_query
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:02.