10/05/2008, 07:00
|
| | | Fecha de Ingreso: enero-2008 Ubicación: Lima peru
Mensajes: 81
Antigüedad: 16 años, 3 meses Puntos: 1 | |
mandar mail antes de la fecha Hola amigos webmasters tengo un problema con mi script resulta que nesesito enviar un email de advertencia a todos los registros que les falta 15 dias para su fecha de expiracion (campo date_expire) he logrado restarle 15 dias a la fecha de expiracion pero tengo problemas al enviar el mail cuando pongo la condicion me manda el email a todos no solo a aquellos que cumplan con la condicion aqui les dejo el escript para que me ayuden o si tienen otro escript pasenmelo . Código PHP: <?php $conex=mysql_connect('localhost','user','clave') or die('No se puedo conectar con la base de datos!'); /* Servidor: aquí debe poner la dirección de su servidor, en la mayoría de las compañías es 'localhost' Nombre_de_usuario: debe pone su nombre de usuario en el servidor. Contraseña: su contraseña. */ mysql_select_db('mibasededatos',$conex); function suma_fechas($fecha,$ndias) { if (preg_match("/[0-9]{1,2}\/[0-9]{1,2}\/([0-9][0-9]){1,2}/",$fecha)) list($año,$mes,$dia)=split("/", $fecha); if (preg_match("/[0-9]{1,2}-[0-9]{1,2}-([0-9][0-9]){1,2}/",$fecha)) list($dia,$mes,$año)=split("-",$fecha); $nueva = mktime(0,0,0, $mes,$dia,$año) + $ndias * 24 * 60 * 60; $nuevafecha=date("Y-m-d",$nueva); return ($nuevafecha); } echo '<head> <title>'.$_SERVER[PHP_SELF].'</title> </head> <html> <body>'; //aqui es donde quiero llamar a la fecha para después sumarle los Días $date = mysql_query ("SELECT dimeq_listings.mail,DATE_FORMAT(dimeq_listings.date_expire, '%d-%m-%Y') AS nfecha,dimeq_listings.selector,dimeq_listings.firmname FROM dimeq_listings where dimeq_listings.membership = 1", $conex) or die( mysql_error() ); while($row2 = mysql_fetch_array( $date )) { $f11=suma_fechas($row2['nfecha'], 0); // aquí le sumo a la fecha 60 días echo '</body> </html>'; // tu sabrás como la obtienes, solo asegurate que tenga este formato $dias= 15; // los días a restar $fechaenvio = date("Y-m-d", strtotime("$f11 -$dias day")); $fechaactual=strftime( "%Y-%m-%d ", time() ); //elaboramos cadena de emails echo "Fecha actual ".$fechaactual."<br>"; echo "Fecha de envio ".$fechaenvio."<br>"; } $query_Tabla = "SELECT dimeq_listings.mail,DATE_FORMAT(dimeq_listings.date, '%d-%m-%Y'),DATE_FORMAT(dimeq_listings.date_expire, '%d-%m-%Y') FROM dimeq_listings where dimeq_listings.membership = 1 ORDER BY userid ASC"; $Tabla = mysql_query($query_Tabla, $conex) or die(mysql_error()); /* Email: es el nombre del campo que requerimos, si ha seguido nuestras instrucciones creando nuestra misma tabla en la base de datos no debe cambiar esto. Usuarios: es el nombre de la tabla donde está el campo 'email', si ha seguido nuestras instrucciones creando nuestra misma tabla en base de datos no debe cambiar esto. */ if ( $fechaactual = $fechaenvio) { //elaboramos cadena de emails $losemails=""; while ($row_Tabla=mysql_fetch_assoc($Tabla)) { $losemails.=($row_Tabla['mail'].", "); } $largo=strlen($losemails); if ($largo>2) { //quitamos ultimos ", " $losemails=substr($losemails,0,$largo-2); } else { echo "No hay destinatarios!"; die(); }; // se definen los argumentos de mail( ): $asunto='Prueba de email desde PHP'; $mensaje='<html> <head> <title>Titulo de la Pagina</title> </head> <body> <p>Esta es una prueba de emails en formato HTML</p> Precios de nuestros productos: <table> <tr> <th>PRODUCTO<th>PRECIO<th>PROMOCION</th> </tr> <tr> <td>Refresco Grande</td><td>25,50</td><td>23,00</td> </tr> <tr> <td>Helado Napolitano</td><td>27,50</td><td>25,00</td> </tr> <tr> <td>Patatas</td><td>18,50</td><td>15,00</td> </tr> </table> </body> </html>'; /* Aquí debe poner su email en formato HTML */ $envia='[email protected]'; $remite='[email protected]'; /* Enviante: Nombre del enviante Email_remitente: email que desea mostrar como remitente. */ /// Envío del email: mail(null, $asunto, $mensaje, "MIME-Version: 1.0 Content-type: text/html; charset=iso-8859-1 From: $envia <$remite> Bcc: $losemails" . "\r\n") or die("Error al Enviar el Email"); echo "Mensaje Enviado con Éxito!"; // mysql_free_result($Tabla); } else { echo "no ay mensajes pra enviar a la fecha"; } mysql_close($conex); ?> |