Foros del Web » Programando para Internet » PHP »

PHP OO Envío de mails con php

Estas en el tema de Envío de mails con php en el foro de PHP en Foros del Web. Que tal amigos, estoy desarrollando un mini-framework propio para saber de lo que estoy hecho, y tengo un inconveniente: Resulta que dentro de mi estructura, ...
  #1 (permalink)  
Antiguo 18/08/2016, 13:50
 
Fecha de Ingreso: noviembre-2014
Mensajes: 13
Antigüedad: 10 años
Puntos: 0
Envío de mails con php

Que tal amigos, estoy desarrollando un mini-framework propio para saber de lo que estoy hecho, y tengo un inconveniente:

Resulta que dentro de mi estructura, cree un archivo email.php donde desarrolle el siguiente código:

Código PHP:
<?php

    
class email{
        public static function 
enviarEmail($para$titulo$archivo$datos null){

            
$body Vista::crear(MAILS.$archivo,$datos); // deberia devolver toda la vista
            
            
$from "From: Anonimo";
            
$envio mail($para$titulo$body$from);

            if(
$envio){
                return;
            }

            else{
                return; 
//retornar error
            
}
        }
    }
Lo que hace es recibir el destinatario, el titulo del correo que voy a enviar, el archivo donde se encuentra la vista del correo que voy a mandar y datos en caso de que los precise.

Entonces lo que hago es llamar al metodo del objeto Vista que lo que hace es incluirme la vista del mail que voy a enviar, es decir, sintetizando, lo que hace finalmente es un include $archivo; pasandole los datos en caso de ser necesario.

El mail lo envía correctamente pero con el cuerpo vacío. Es más que obvio que el problema esta cuando llamo al metodo crear de Vista, por que lo que hago es incluir toda la vista y asignarselo a una variable (no estoy seguro si eso es posible hacerlo).

EJEMPLO AYUDA:
Para aclarar un poco más las cosas, supongamos que el usuario se registra y yo deseo enviarle todos los datos a su cuenta, además con el link de "confirmación de cuenta" entonces llamo al metodo enviarMail y le paso como parametros el mail del usuario, el titulo correspondiente, el archivo donde se aloja la vista del mail y los datos del usuario. Entonces el metodo enviarMail lo que hace es llamar al metodo crear de Vista que incluye el cuerpo del mensaje con los datos del usuario y TODO ESO, lo guardo en la variable body (que se supone que tiene todo el cuerpo del mensaje) y finalmente se envía.

Si hasta aca entendiste todo no hace falta que veas estos archivos, pero los comparto por las dudas:

vista.php

Código PHP:
<?php

    
class Vista {

    
//ruta, apodo y valor
    
public static function crear($path,$key=null,$value=null){
        
//comprobamos si existe la variable path
        
if($path != ""){
            
            
// comprobar si ese archivo existe
            
if(file_exists($path)){
                
//comprobar si existe $key
                
if(!is_null($key)){
                    if(
is_array($key)){
                        
// extrae los keys y los convierte a variables
                        
extract($key,EXTR_PREFIX_SAME,"");
                    }else{
                        
//("index","usus",$usuarios)
                        //$usus = $usuarios;
                        
${$key} = $value;
                    }
                }
                include 
$path;
            }else{
                
//die("no existe la vista");
                
return Vista::crear(MENSAJES."error/error404.php");
            }
        }

        return 
null;
    }
registradoConExito.php

Código PHP:
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title></title>
    <link rel="stylesheet" href="">
</head>
<body>
    <?php echo $datos['usuario'];?>
    <h1>Gracias por registrarte !</h1>
    <ul>
        <li>Usuario: <?php echo $usuario?></li>
        <li>Password: <?php echo $password?></li>
        <li>Email: <?php echo $email?></li>
        <li>Nacimiento: <?php echo $date?></li>
    </ul>
    <a href="<?php echo $url;?>">Validar cuenta.</a>
</body>
</html>
Desde ya, muchas gracias.
  #2 (permalink)  
Antiguo 18/08/2016, 19:34
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: Envío de mails con php

que complicado!
usa phpmailer y problema resuelto

Etiquetas: mail-php, poo
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 10:16.