22/03/2005, 12:59
|
| | | Fecha de Ingreso: enero-2002 Ubicación: Temuco
Mensajes: 179
Antigüedad: 22 años, 2 meses Puntos: 0 | |
Hola, no sé si te sirva de algo, pero éste código que desarrollé usando funciones de una y otra parte trabaja en un 100% bien, revisalo y tal vez te sirva de algo. Código PHP: <? $HTTP_REQUEST_VARS['Subject']; $HTTP_REQUEST_VARS['From']; $HTTP_REQUEST_VARS['imagen']; set_time_limit(0); $dayarray=array("Domingo","Lunes","Martes","Miercoles","Jueves","Viernes","Sábado","Domingo"); $montharray=array("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"); $diasemana= date("w"); $diames= gmdate("d"); $mes= gmdate("m"); $ano= gmdate("Y"); $lafecha=$dayarray[$diasemana].", ".$montharray[$mes-1]." ".$diames." de ".$ano; $eventosmes=$montharray[$mes-1]; $newmes=$mes-1; $eventomesiguiente=$montharray[$newmes+0]; if ($send=="ok") { ### Leer archivo de mail function mostrarTemplate($tema, $variables) { $cod = implode("", @file($tema)); ob_start(); extract($variables); eval('?>'.$cod.'<?'); $temp=ob_get_contents(); ob_end_clean(); return $temp; } $archivo = "../mails/plantilla.php"; $variablesmensaje= array ("lafecha" => $lafecha, "promocion" => $promocion, "lista" => $lista); $Mensaje=mostrarTemplate($archivo, $variablesmensaje); ### Escribir el archivo correspondiente al tipo de promoción $archivo = "../mails/".$promocion.".html"; $fp = fopen($archivo, "w+"); $contenido = $Mensaje; $write = fputs($fp, $contenido); fclose($fp); ### $BaseUsr=mysql_connect("***","***","***"); mysql_select_db("oba_obadat",$BaseUsr); $SQLregistro=mysql_query("SELECT * FROM obamail",$BaseUsr); $mails_enviados=0; ?> <span class="tableenc"><strong> <font face="Arial, Helvetica, sans-serif">- Enviando...</font></strong><font face="Arial, Helvetica, sans-serif"> </font> <? while ($Registro=mysql_fetch_array($SQLregistro)) { $Contacto_CorreoElectronico=$Registro["mail"]; sleep(1); // $Nombre =$Registro["nombres"]; $apellidos=$Registro["apellidos"]; $headers = "MIME-Version: 1.0\r\n"; $headers .= "Content-type: text/html; charset=iso-8859-1\r\n"; $headers .= "From: ".$From." <[email protected]>\r\n"; $headers .= "Reply-To: <[email protected]>\r\n"; $headers .= "X-Mailer: PHP/" . phpversion(); if (mail($Contacto_CorreoElectronico, $Subject, $Mensaje,$headers)) { $mails_enviados++; } else { echo "<b>No enviado a ".$Contacto_CorreoElectronico."</b>"; } flush(); } ?> <img src="images/good.gif"> [Total mails enviados: <?=$mails_enviados?> ]</span> <? echo $Mensaje; } ?> Cómo funciona ?? Simple, rescato las variables Subject, From e imagen, utilizo una plantilla que leo en mostrartemplate(), descargo los correos de una base de datos y envío. El proceso de envío es un poco lento a veces, pero depende del servidor y de la cantidad de mails que envíes, la he probado hasta con 3000 cuentas de correo.
Si te sirve y encuentras que se puede mejorar, adelante, eso si, espero me lo comuniques
Saludos.
__________________ ----------------------------------
APP Developer [email protected]
---------------------------------- |