Foros del Web » Programando para Internet » PHP »

alguien sabe como enviar un mail masivo, cogiendo los correos de una base de datos?

Estas en el tema de alguien sabe como enviar un mail masivo, cogiendo los correos de una base de datos? en el foro de PHP en Foros del Web. Me gustaria encontrar la manera de poder enviar una plantilla html a todos las personas que estan registradas. un tipo de boletin semanal. tengo algo ...
  #1 (permalink)  
Antiguo 05/10/2003, 17:34
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
alguien sabe como enviar un mail masivo, cogiendo los correos de una base de datos?

Me gustaria encontrar la manera de poder enviar una plantilla html a todos las personas que estan registradas. un tipo de boletin semanal. tengo algo asi..


<?
$sql = mysql_query("SELECT mail FROM usuarios");


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

$emails = $row['mail'];
mail("$emails", "boletin semanal","mensaje");

}

como inserto aqui el archivo html q quiero enviar? q hago mal para q no se me envie bien el mail??

salu2, y gracias
  #2 (permalink)  
Antiguo 05/10/2003, 17:41
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
para esto lo mejor es utilizar la clase phpmailler la puedes encontrar:

http://phpmailer.sourceforge.net/

veras con los ejemplos que es muy facil

espero que te sirva
  #3 (permalink)  
Antiguo 05/10/2003, 17:44
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
gracias Jordi, tu has utilizado estas clases? sirven para lo q yi quiero? la cosa es que creo q no voy mal encaminado con mi codigo, solo me falta meter un archivo html en una variable o en un archivo...

alguien sabria como?

Gracias
  #4 (permalink)  
Antiguo 05/10/2003, 18:06
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
bueno para eviar codigo html tienes de usar cabeceras aqui tienes un ejemplo de envio de mails masivos a partir de una BDD
revisa el codigo pq no lo he probado, pero es asi mas o menos
Código PHP:
<?php 
include "config.php";// datos de la BDD

mysql_connect($server $db_user $db_pass) or die ("Database CONNECT Error (line 20)"); 

$result_mail=mysql_db_query($database"SELECT * from subscritos") or die ("Database Select error linea 8");
 
while(
$qry=mysql_fetch_object($result_mail)){

$id=$qry->id;

$texto="boletines/boletin.htm";
$titulo="Proba de boletin";


$responder=$emailinfo ;
$remite=$emailinfo;
$remitente=$tusitio;

$cabecera ="Date: ".date("l j F Y, G:i")."\n"
$cabecera .="MIME-Version: 1.0\n"
$cabecera .="From: ".$remitente."<".$remite.">\n";
$cabecera .="Return-path: "$remite."\n";
$cabecera .="Reply-To: ".$responder."\n";
$cabecera .="X-Mailer: PHP/"phpversion()."\n";
$cabecera .="Content-Type: text/html; charset=\"ISO-8859-1\"\n";


   
mail($qry->email ,$titulo$texto,$cabecera);
}   

?>
no obstante ya te digo la clase phpmailer es mucho mas segura y rapida, con la particularidad de que puedes enviar tb archivos adjuntos, bajatela y mira los ejemplos veras que es muy sencilla de usaar

un saludo
  #5 (permalink)  
Antiguo 05/10/2003, 18:32
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
he probado con algo asi, pero me da error

<?
include("conexion.php");
$sql = mysql_query("SELECT * FROM usuarios");
while($row=mysql_fetch_array($sql)){
$emails = $row['mail'];
$texto="alta_productes.php";
$titulo="Prueba";
$mail = mail($emails,$titulo,$texto);
}
?>

pero me da el siguiente error:

Warning: Server Error in c:\inetpub\wwwroot\php\Mails\enviar.php on line 14

seguro q lo q etsoy intentado es una locura, pero dicen q con grandes errores se aprende, no?

espero vuestra ayuda
  #6 (permalink)  
Antiguo 05/10/2003, 18:37
 
Fecha de Ingreso: abril-2003
Mensajes: 656
Antigüedad: 21 años
Puntos: 1
para enviar email desde local necesitas un servidor SMTP,

en esta url tienes inofrmacion
http://www.rinconastur.com/php/php64a.php

y ya te digo, para enviar html necesitas enviarle cabeceras como en el codigo de arriba

un saludo
  #7 (permalink)  
Antiguo 19/04/2008, 13:28
Avatar de yeudiel  
Fecha de Ingreso: abril-2008
Ubicación: Ciudad de México
Mensajes: 78
Antigüedad: 16 años
Puntos: 1
Re: alguien sabe como enviar un mail masivo, cogiendo los correos de una base de dato

Pues mira yo creo q podrias hacer esto, es muy importante lo que pones en las cabeceras, sino puede ser q tu mail llegue como texto plano, lo puedes hacer editando el html desde aqui:
<?php
//conexion a la base de datos
$sql = "SELECT mail FROM usuarios";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){
$email = $row['mail'];
$texto='<html><div align="center">Aqui va el codigo html que quieres mostrar</div></html>';
$titulo="Este es mi titulo";
$cabeceras = "From: [email protected]\r\n";
$cabeceras .= "Reply-To: [email protected]\r\n";
$cabeceras .= "Return-Path: [email protected]\r\n";
$cabeceras .= "Content-type: text/html\r\n";
$mail = mail($email,$titulo,$texto,$cabeceras);
}
?>

en teoria supongo q esto podria funcionar si no la sale bien me gustaria pusieras cual fue el error.
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 14:36.