Ver Mensaje Individual
  #9 (permalink)  
Antiguo 23/02/2003, 12:50
Avatar de zarate
zarate
 
Fecha de Ingreso: septiembre-2001
Ubicación: Madrid
Mensajes: 164
Antigüedad: 22 años, 7 meses
Puntos: 0
Bueno, ya dí con la solución... espero que ayude a alguien:

La clase ->

Código PHP:

<?php 
class correo // empezamos

    /************************************
    
    El propósito de esta clase es bien sencillo: enviar mails con formato HTML
    Funcionamiento: Cuenta el número de destinos que se han introducido y envía ese número de correos,
        el mail 1 tiene el asunto 1, el destino 1, el remite 1, etc, etc...
        Al final recuenta si ha habido fallos en la variable fallo_envios que por defecto es 0.
    
    Esta clase NO:
        - Comprueba que la sintaxis de los mails sea correcta,
        - Puede aduntar archivos de ninguna clase,
        - Cambiar las cabeceras,
        - Mandar mensajes con CC, CCO, etc, etc...,
        - Mil cosas más que se podrán hacer.
        
    Una clase seria de envio de mails: [url]http://phpmailer.sourceforge.net[/url]
    
    Espero que ayude a alguien aunque sea como inspiración para hacer una fashion de la muerte ;)
    Mejorar lo que creais oportuno y me mandais una copia a: Zárate, [email][email protected][/email]. GRACIAS A TODOS.
    
    ************************************/

    // declaramos variables
    
var $asunto;
    var 
$cuerpo;
    var 
$destino;
    var 
$remite;
    var 
$estado;
    var 
$comprobar_mails;
    var 
$fallo_envios 0;

    function 
enviar(){ // realiza el envio de los mails
        
for($i=0$i<count($this->destino); $i++){ // recorremos los arrays para el envio
            
if(mail($this->destino[$i],$this->asunto[$i],$this->cuerpo[$i],"From: ".$this->remite[$i]."\nContent-Type: text/html; charset=iso-8859-1")){ // envio ok
                
$this->estado[$i] = "ok";
            } else { 
// envio ko
                
$this->estado[$i] = "ko";
            }
// end if
        
// end for
        
$this->verificar(); // verificamos si ha habido errores en el envio
    
// end function enviar
    
    
function verificar(){ // comprueba si ha habido envios fallidos y cuantos
        
for($i=0$i<count($this->estado); $i++){ // recorremos el array del estado de los mails para verificar que no hay ko's
            
if ($this->estado[$i] != "ok"){ // ha encontrado un ko
                
$this->fallo_envios++;
            } 
// end if
        
// end for
    
// end function verificar
 
// end class correo

?>
Una página de ejemplo ->

Código PHP:

<html>
<head>
<title>Prueba clase correo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<?php
    
    
// podemos mandar el cuerpo con formato HTML

    
$cuerpo_HTML "
        
        <table bgcolor='#000000'>
            <tr>
                <td><font color='#FFFFFF'>Feo</font></td>
            </tr>
        </table>
    
    "
;
    
    
$cuerpo_HMTL2 "
        
        <table bgcolor='#000000'>
            <tr>
                <td><font color='#FFFFFF'>Feo que te veo</font></td>
            </tr>
        </table>
    
    "
;    

    include(
"class.correo.php"); // incluimos la clase
    
$xuan = new correo(); // creamos el objeto
    
    // definimos las variables que necesitamos
    
$xuan->asunto = array("Asunto mail 1""Asunto mail 2");
    
$xuan->cuerpo = array($cuerpo_HMTL$cuerpo_HMTL2);
    
$xuan->destino = array("[email protected]""[email protected]");
    
$xuan->remite = array("[email protected]""[email protected]");
    
$xuan->enviar();
    
    if (
$xuan->fallo_envios == 0){
        print(
"Envios correctos");
    } else {
        print(
"Error en los envios");
    }
// end if

    
print("<br>Fallos -> ".$xuan->fallo_envios."");

?>

</body>
</html>
Saludos
__________________
Zárate