Foros del Web » Programando para Internet » PHP »

Enviar un e-mail a todos los que están en mi base de datos

Estas en el tema de Enviar un e-mail a todos los que están en mi base de datos en el foro de PHP en Foros del Web. Hola que tal, soy nuevo en esto del php y mysql. Quisiera saber cómo le puedo hacer para enviarle un e-mail a todas las personas ...
  #1 (permalink)  
Antiguo 05/07/2008, 09:14
Avatar de thebestboy2671  
Fecha de Ingreso: enero-2008
Mensajes: 138
Antigüedad: 16 años, 3 meses
Puntos: 1
Pregunta Enviar un e-mail a todos los que están en mi base de datos

Hola que tal, soy nuevo en esto del php y mysql. Quisiera saber cómo le puedo hacer para enviarle un e-mail a todas las personas que tengo registradas en una tabla de mi base de datos, pero con la condición de que cuando tales personas reciban el e-mail, sólo vean su propia dirección en el campo de destinatarios y no todos los correos a los cuales se les envió el mensaje, porque sería como regalar mi lista. Esto es lo que tengo por ahora, el script no tiene algún error visible (sintaxis), pero no manda los correos. Gracias por sus respuestas y saludos.

Código PHP:
<?
//Datos para el envio
$from="[email protected]"//cuenta que envia
$asunto=$_POST[asunto]; //asunto
$mensaje=$_POST[mensaje]; //mensaje
$sheader="From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader=$sheader."Mime-Version: 1.0\n";
$sheader=$sheader."Content-Type: text/html";

//Conexion con la base
$conexion mysql_connect("localhost","user","pass");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("base de datos");

//Ejecucion de la sentencia SQL
$sql"select mail from prueba";
mysql_query($sql);

//Envio del email
mail($sql,$asunto,$mensaje,$sheader); 

//Cerrar la conexión con la base de datos
mysql_close($conexion);
?>
__________________
Si te he ayudado con mis conocimientos, añádeme algo de Karma :P
  #2 (permalink)  
Antiguo 05/07/2008, 09:28
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Enviar un e-mail a todos los que están en mi base de datos

Que tal thebestboy2671, para enviar todos los mails a a la vez debes recorrer el resultado de tu query con un ciclo en este caso while, ademas de estos veo que no tienes claros algunos conceptos con respecto a la ejecución de consultas te invito a que leas el manual de PHP, mysql_fetch_array tu código podria quedar así:

Código PHP:
<?php
//Datos para el envio
$sfrom "[email protected]"//cuenta que envia
$asunto $_POST['asunto']; //asunto
$mensaje $_POST['mensaje']; //mensaje
$sheader "From:".$sfrom."\nReply-To:".$sfrom."\n";
$sheader $sheader."X-Mailer:PHP/".phpversion()."\n";
$sheader $sheader."Mime-Version: 1.0\n";
$sheader $sheader."Content-Type: text/html";

//Conexion con la base
$conexion mysql_connect("localhost","user","pass");

//selección de la base de datos con la que vamos a trabajar
mysql_select_db("base de datos");

//Ejecucion de la sentencia SQL
$sql "select mail from prueba";
$result mysql_query($sql$conexion) or die("Error en query $sql:" .mysql_error() );

//Envio del email
while($datos mysql_fetch_array($result)){
mail($datos['mail'],$asunto,$mensaje,$sheader); }

//Cerrar la conexión con la base de datos
mysql_close($conexion);
?>
Saludos.
  #3 (permalink)  
Antiguo 05/07/2008, 13:48
Avatar de thebestboy2671  
Fecha de Ingreso: enero-2008
Mensajes: 138
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Enviar un e-mail a todos los que están en mi base de datos

Hola Carlojas, primeramente gracias por la ayuda y también decirte que con la modificación que le hicistes a mi script, ahora si está funcionando. Por otro lado, aún estoy leyendo lo básico de php y la verdad que es muy interesante, me atrevo a decir que está más interesante que java, que es el lenguaje que domino bastante, aparte de otros. Para terminar, gracias por la gran ayuda ya que necesitaba este script funcionando con urgencia.
__________________
Si te he ayudado con mis conocimientos, añádeme algo de Karma :P
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 17:50.