
30/12/2008, 10:14
|
 | | | Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 18 años, 4 meses Puntos: 1 | |
Respuesta: envios newsletter cada cincuenta emails mira. como os digo uso la clase phpmailer. este es mi codigo: Código PHP: mysql_connect("localhost", "user", "pass");
mysql_select_db ("basededatos");
require "includes/class.phpmailer.php";
//sacamos el numero de emails en la tabla newsletter
$sql = "SELECT email FROM newsletter"; // sentencia sql
$result = mysql_query($sql);
$num_total= mysql_num_rows($result);
//decimos que los coja de dos en dos
$num = 2; //Número de mails por envio.
$num_total;//Numero total de mails
for ($i=0;$i<=$num_total;$i=$i+$num) {
$sqlmail= "SELECT email FROM newsletter LIMIT $i, $num";
$resultmail = mysql_query($sqlmail);
while($datosmail = mysql_fetch_array($resultmail)) {
/instanciamos un objeto de la clase phpmailer al que llamamos email
$email= new phpmailer();
//Definimos las propiedades y llamamos a los métodos
//correspondientes del objeto email
//Con PluginDir le indicamos a la clase phpmailer donde se
//encuentra la clase smtp
$email->PluginDir = "includes/";
//Con la propiedad Mailer le indicamos que vamos a usar un
//servidor smtp
$email->Mailer = "smtp";
//Asignamos a Host el nombre de nuestro servidor smtp
$email->Host = "smtp.midominio.com";
//Le indicamos que el servidor smtp requiere autenticación
$email->SMTPAuth = true;
//Le decimos cual es nuestro nombre de usuario y password
$email->Username = "miusuario";
$email->Password = "mipass";
//Indicamos cual es nuestra dirección de correo y el nombre que
//queremos que vea el usuario que lee nuestro correo
$email->From = "[email protected]";
$email->FromName = "Boletín de Novedades";
//el valor por defecto 10 de Timeout
$email->Timeout=10;
//Indicamos cual es la dirección de destino del correo. Para ello conectamos con la base de datos de emails
$email->AddAddress($datosmail[0]);
$email->IsHTML(true);
//Asignamos asunto y cuerpo del mensaje
//El cuerpo del mensaje lo ponemos en formato html, haciendo
//que se vea en negrita
$email->Subject = "Prueba de newsletter";
$email->Body = 'Este es el mensaje';
//Definimos AltBody por si el destinatario del correo no admite email con formato html
$email->AltBody = "Su gestor de correos no recibe mensajes en formato HTML";
//se envia el mensaje, si no ha habido problemas
//la variable $exito tendra el valor true
$exito = $email->Send();
//Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho
//para intentar enviar el mensaje, cada intento se hara 5 segundos despues
//del anterior, para ello se usa la funcion sleep
$intentos=1;
while ((!$exito) && ($intentos < 5)) {
sleep(5);
//echo $email->ErrorInfo;
$exito = $email->Send();
$intentos=$intentos+1;
}
if(!$exito)
{
echo "Problemas enviando correo electrónico a ".$valor;
echo "<br>".$email->ErrorInfo;
}
sleep(2);// dormir dos segundos entre conexion al smtp
header ("Location: exitonewsletter.php");
}}
pues eso es todo
__________________ desgraciadamente no conozco php ni la mitad de lo que lo conocen ustedes y eso es menos de la mitad de lo que yo querria y lo que yo querria es menos de la mitad de lo que la mitad de ustedes conocen |