Foros del Web » Programando para Internet » PHP »

Envio de email con mail() php

Estas en el tema de Envio de email con mail() php en el foro de PHP en Foros del Web. Hola que tal. La verdad es que no tengo problema con la funcion mail(), me esta resultando bien, el caso es el siguiente, Necesito enviar ...
  #1 (permalink)  
Antiguo 26/01/2012, 15:03
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 17 años, 5 meses
Puntos: 0
Envio de email con mail() php

Hola que tal.

La verdad es que no tengo problema con la funcion mail(), me esta resultando bien, el caso es el siguiente,

Necesito enviar un email recordatorio a mis clientes que se aproxima la fecha para el vencimiento del servicio contratado, para ello estoy haciendo un scripts para posteriormente ejecutarlo a diario con cron.

Ya puedo enviar los mensajes correspondientes al cliente y con copia (Cc) al contacto del cliente, como así también una copia oculta (Bcc) al webmaster del sitio para un mejor control.

Para ello consulto 4 tablas mysql, servicio_cliente, cliente, servicio, y datos_contacto, primeramente hago la consulta a servicio del cliente que es donde tiene la fecha de vencimiento, y obtengo el código del servicio, pongo un while y dentro de ese while se crean varias variables para gestionar las fechas de los avisos, antes de 30, 20, 15 y 2 días, como así también días posteriores al vencimiento.

con if chequeo la fecha actual con la del vencimiento, para que se envié un correo si es necesario según las fechas, y dentro de es if hago las consultas a las otras 3 tablas, mas que nada para obtener el nombre de la empresa, el email, nombre del contacto y el correo, para enviarle a los 2 el mensaje de vencimiento, hasta aquí todo ok.

El inconveniente es que solamente envía los correos al primero de la tabla y aunque haya otros servicio que vencen en la misma fecha, no los envía, cuando es de suponer que el while debe recorreo toda la tabla, y la verdad que eso es lo que me tiene parado.

Si alguien me puede ayudar por favor se los agradeceré eternamente.

dejo el código en segundo post. (Aun no esta completo, solo el primer aviso)
__________________
Un Cordial Saludo
Claudio González Soto
Negocios Online
http;//www.servpcweb.com
  #2 (permalink)  
Antiguo 26/01/2012, 15:04
 
Fecha de Ingreso: octubre-2006
Ubicación: Valparaiso Chile
Mensajes: 228
Antigüedad: 17 años, 5 meses
Puntos: 0
Respuesta: Envio de email con mail() php Segunda parte

Código PHP:
<?php
        
//Conectando con la Base de datos y efectuando la consulta.
        //Seleccionando la Fecha de Incorporación (FECHA)
        //y la fecha de renovación (RENOVAR)

        
require_once('../clases/conexion.class.php');
        
//Creamos una consulta a la tabla de servicios del cliente
        
$sql " SELECT
        cod_servicio,
        rut_empresa,
        nombre_dominio,
        UNIX_TIMESTAMP(vencimiento) AS vencimiento,
        cod_categoria,
        estado
        FROM spc_servicio_cliente "
;
        
$result mysql_query($sql,Conectar::con());


        while (
$row mysql_fetch_array($result)) {
                
$rut_empresa=$row['rut_empresa'];
                
$cod_servicio $row['cod_servicio'];
                
//Creamos la Variable $ren asignando la fecha de vencmiento [vencimiento]
                
$ren=$row['vencimiento'];
                
//echo "<h2>","Tu Fecha de vencimiento es : ",date('d/m/Y',$ren),"</h2>";

                // Quitamos 30 días a la fecha de vencimiento y lo asignamos a la variabe $ren
                
$ren1=strtotime("-30 days",$row['vencimiento']);
                
//echo "<h2>","Primer aviso Faltan 30 días para el vencimiento : ",date('d/m/Y',$ren1),"</h2>";

                // Quitamos 20 días a la fecha de vencimiento y lo asignamos a la variabe $ren2
                
$ren2=strtotime("-20 days",$ren);
                
//echo "<h2>","Segundo aviso Faltan 20 días para el vencimiento : ",date('d/m/Y',$ren2),"</h2>";

                 // Quitamos 10 días a la fecha de vencimiento y lo asignamos a la variabe $ren3
                
$ren3=strtotime("-10 days",$ren);
                
//echo "<h2>","Tercer aviso Faltan 10 días para el vencimiento : ",date('d/m/Y',$ren3),"</h2>";

                // Quitamos 5 días a la fecha de vencimiento y lo asignamos a la variabe $ren4
                
$ren4=strtotime("-5 days",$ren);
                
//echo "<h2>","Cuarto aviso Faltan 5 días para el vencimiento : ",date('d/m/Y',$ren4),"</h2>";

                // Agregamos 2 días a la fecha de vencimiento y lo asignamos a la variabe $ven1
                
$ven1=strtotime("+2 days",$ren);
                
//echo "<h2>","Quinto aviso, su servicio se encuentra vencido hace 2 días : ",date('d/m/Y',$ven1),"</h2>";

                // Agregamos 4 días a la fecha de vencimiento y lo asignamos a la variabe $ven2
                
$ven2=strtotime("+4 days",$ren);
                
//echo "<h2>","Sexto aviso, su servicio se encuentra vencido hace 4 días : ",date('d/m/Y',$ven2),"</h2>";

                // Agregamos 6 días a la fecha de vencimiento y lo asignamos a la variabe $ven3
                
$ven3=strtotime("+6 days",$ren);
                
//echo "<h2>","Septimo aviso, su servicio se encuentra vencido hace 6 días : ",date('d/m/Y',$ven3),"</h2>";

                // Agregamos 15 días a la fecha de vencimiento y lo asignamos a la variabe $ven4
                
$ven4=strtotime("+15 days",$ren);
                
//echo "<h2>","Último aviso, su servicio se encuentra vencido hace 15 días : Sera desactivado en 24 horas ",date('d/m/Y',$ven3),"</h2>";

                // Agregamos un año a la fecha de vencimiento y lo asignamos a la variable $year
                
$year=strtotime("+1 years"$ren);
                
//echo "<h2>","Su nueva fecha de vencimiento es :  ",date('d/m/Y',$year),"</h2>";


                
if (date("d/m/Y") == date("d/m/Y",$ren1)){

                        
//Creamos una consulta a la tabla de los clientes
                        //para obtener el nombre de la empresa y el email
                        
$sql " SELECT
                        empresa,
                        rut_empresa,
                        email
                        FROM spc_clientes
                        WHERE rut_empresa = '$rut_empresa' "
;
                        
$result mysql_query($sql,Conectar::con());
                        
$clie mysql_fetch_array($result);
                        
$empresa $clie['empresa'];
                        
$email_empresa $clie['email'];

                        
//Creamos una consulta a la tabla de servicios
                        
$sql " SELECT
                        cod_servicio,
                        servicio,
                        cod_categoria
                        FROM spc_servicios
                        WHERE cod_servicio = '$cod_servicio' "
;
                        
$result mysql_query($sql,Conectar::con());
                        
$serv mysql_fetch_array($result);
                        
$servicio $serv['servicio'];

                        
//Creamos una consulta a la tabla de contactos de los clientes
                        
$sql " SELECT
                        rut_empresa,
                        nombre,
                        email
                        FROM spc_datos_contacto
                        WHERE rut_empresa = '$rut_empresa' "
;
                        
$result mysql_query($sql,Conectar::con());
                        
$contac mysql_fetch_array($result);
                        
$nombre_contacto $contac['nombre'];
                        
$correo_contacto $contac['email'];

                        
//echo "<h2>","Primer Aviso de Vencimiento de su Servicio","</h2>";
                        
$destinatario "$email_empresa" ;
                        
$asunto "Primer Aviso de Vencimiento de su Servicio '$servicio' ";
                        
$cuerpo '
                                <html>
                                        <head>
                                                <title>Primer Aviso de Vencimiento</title>
                                        </head>
                                        <body>
                                                <h1>Estimados(as) '
.$empresa.'</h1>
                                                <p>
                                                        <h2>
                                                                Su Servicio '
.$servicio.' Vence en 30 días.
                                                        </h2>
                                                        Este es un primer aviso, para que tome las providencias del caso.
                                                        <br />
                                                        En 10 días mas le enviaremos un nuevo recordatorio
                                                        <br /<<br />
                                                        Puede ver la información en nuestro sitio web
                                                        http://www.servpcweb.com, éntre en la zona para clientes con su
                                                        Rut y Password, y tendrá mas información sobre sus servicios
                                                        Contratados y las fechas de vencimiento.
                                                        <br /><br />
                                                        Un Cordial Saludo<br />
                                                        Gracias por su preferencia.
                                                </p>
                                        </body>
                                </html>
                        '
;
                        
$cuerpo wordwrap($cuerpo70);
                        
//para el envío en formato HTML
                        
$headers "MIME-Version: 1.0"."\r\n";
                        
$headers .= "Content-type: text/html; charset=iso-UTF-8"."\r\n";

                        
//dirección del remitente
                        
$headers .= "From: ServpcWeb <[email protected]>"."\r\n";

                        
//dirección de respuesta, si queremos que sea distinta que la del remitente
                        
$headers .= "Reply-To: [email protected]"."\r\n";

                        
//ruta del mensaje desde origen a destino
                        
$headers .= "Return-path: [email protected]"."\r\n";

                        
//direcciones que recibián copia
                        
$headers .= "Cc: $correo_contacto "."\r\n";

                        
//direcciones que recibirán copia oculta
                        
$headers .= "Bcc: [email protected]"."\r\n";

                        
mail($destinatario,$asunto,$cuerpo,$headers);


                }elseif (
date("d/m/Y") == date("d/m/Y",$ren2)){
                        echo 
"<h2>","Segundo aviso Faltan 20 días para el vencimiento : ",date('d/m/Y',$ren2),"</h2>";
                 }elseif (
date("d/m/Y") == date("d/m/Y",$ren3)){
                        echo 
"<h2>","Tercer aviso Faltan 10 días para el vencimiento : ",date('d/m/Y',$ren3),"</h2>";
                 } elseif (
date("d/m/Y") == date("d/m/Y",$ren4)){
                        echo 
"<h2>","Cuarto aviso Faltan 5 días para el vencimiento : ",date('d/m/Y',$ren4),"</h2>";
                 } elseif (
date("d/m/Y") == date("d/m/Y",$ven1)){
                        echo 
"<h2>","Quinto aviso, su servicio se encuentra vencido hace 2 días : ",date('d/m/Y',$ven1),"</h2>";
                 } elseif (
date("d/m/Y") == date("d/m/Y",$ven2)){
                        echo 
"<h2>","Sexto aviso, su servicio se encuentra vencido hace 4 días : ",date('d/m/Y',$ven2),"</h2>";
                 } elseif (
date("d/m/Y") == date("d/m/Y",$ven3)){
                        echo 
"<h2>","Septimo aviso, su servicio se encuentra vencido hace 6 días : ",date('d/m/Y',$ven3),"</h2>";
                 }
        }
 
?>
__________________
Un Cordial Saludo
Claudio González Soto
Negocios Online
http;//www.servpcweb.com

Etiquetas: email, mail, mysql, tabla, variables
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 21:19.