Foros del Web » Programando para Internet » PHP »

correo con adjuntos

Estas en el tema de correo con adjuntos en el foro de PHP en Foros del Web. hola, he encontrado un ejemplo por internet de un codigo que segun dice el autor envia un email al correo predefinido y se pueden incluir ...
  #1 (permalink)  
Antiguo 23/10/2011, 11:02
 
Fecha de Ingreso: septiembre-2011
Mensajes: 30
Antigüedad: 12 años, 7 meses
Puntos: 1
correo con adjuntos

hola,

he encontrado un ejemplo por internet de un codigo que segun dice el autor envia un email al correo predefinido y se pueden incluir archivos. No estoy seguro de que este codigo envie el correo. Ademas lo he convertido un poco porque trabajo con netbeans. Pongo el codigo que tengo para si alguien puede ver algun error o si la funcion funciona correctamente.

codigo controler mail:
Código PHP:
<?
class mail extends CI_Controller {
    function 
__construct(){
        
parent::__construct();
        
//session_start();
        
$this->load->helper('url');
      }
    
    public function 
index()
    {
            
            
$data['main'] = 'mail';
            
$data['retorn'] = '';
            
$this->load->vars($data);
            
$this->load->view('template');
    }
        
        public function 
enviar()
    {
            
            
//$data['retorn'] 
            
$sPara $_POST["Nombre"];
            
$sAsunto $_POST['asunto'];
            
$sTexto $_POST["mensaje"]; 
            
$sDe $_POST["email"];
            
$this->MMail->form_mail($sPara$sAsunto$sTexto$sDe);
            
$data['main'] = 'mail';
            
$this->load->vars($data);
            
$this->load->view('template');
            
            
//cambiar aqui el email 
            
if (form_mail("[email protected]"$_POST[asunto], 
            
"Los datos introducidos en el formulario son:\n\n"$_POST[email])) 
            echo 
"Su formulario ha sido enviado con exito";
       }      
}
codigo model mail:

Código PHP:
<?php 

class MMail extends CI_Model{
    var 
$db;
    function 
__construct(){
        
parent::__construct();
        
$this->db $this->load->database('default'TRUE);
    }



function 
form_mail($sPara$sAsunto$sTexto$sDe)
    { 
        
$bHayFicheros 0
        
$sCabeceraTexto ""
        
$sAdjuntos "";

        if (
$sDe)$sCabeceras "From:".$sDe."\n"
        else 
$sCabeceras ""
        
$sCabeceras .= "MIME-version: 1.0\n"
        foreach (
$_POST as $sNombre => $sValor
        
$sTexto $sTexto."\n".$sNombre." = ".$sValor;

        foreach (
$_FILES as $vAdjunto)
        { 
        if (
$bHayFicheros == 0)
        { 
        
$bHayFicheros 1
        
$sCabeceras .= "Content-type: multipart/mixed;"
        
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

        
$sCabeceraTexto "----_Separador-de-mensajes_--\n"
        
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n"
        
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

        
$sTexto $sCabeceraTexto.$sTexto
        } 
        if (
$vAdjunto["size"] > 0)
        { 
        
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n"
        
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";; 
        
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n"
        
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";

        
$oFichero fopen($vAdjunto["tmp_name"], 'r'); 
        
$sContenido fread($oFicherofilesize($vAdjunto["tmp_name"])); 
        
$sAdjuntos .= chunk_split(base64_encode($sContenido)); 
        
fclose($oFichero); 
        } 
        }

        if (
$bHayFicheros
        
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n"
        return(
mail($sPara$sAsunto$sTexto$sCabeceras)); 
    }



}
?>
codigo de la vista:

Código HTML:
<h1 align="center">Enviar un correo </h1><br />
<h3>Correo:</h3>
<form method="post" action="<?php echo base_url().'mail/enviar'; ?>" enctype="multipart/form-data">
        <p>Nombre <input type='text' name='Nombre' id='Nombre'></p> 
        <p>email 
        <input type='text' name='email' id='email'>
        </p>
        <p>Asunto 
        <input type='text' name='asunto' id='asunto' />
        </p>
        <p>Mensaje
        <textarea name="mensaje" cols="50" rows="10" id="mensaje"></textarea>
        </p>
        <p>Adjuntar fichero: <input type='file' name='archivo1' id='archivo1'></p> 
        <p>
        <input type='submit' value='Enviar'> 
        </p>
</form> 
  #2 (permalink)  
Antiguo 23/10/2011, 12:51
Avatar de mcun  
Fecha de Ingreso: octubre-2010
Ubicación: tras la pantalla
Mensajes: 466
Antigüedad: 13 años, 6 meses
Puntos: 55
Respuesta: correo con adjuntos

y lo probaste y el error es .........
  #3 (permalink)  
Antiguo 23/10/2011, 12:54
 
Fecha de Ingreso: septiembre-2011
Mensajes: 30
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: correo con adjuntos

Me dice esto: A PHP Error was encountered

Severity: Notice
Message: Undefined property: mail::$MMail
Filename: controllers/mail.php

Line Number: 40

Fatal error: Call to a member function form_mail() on a non-object in C:\xampp\htdocs\ampa\application\controllers\mail. php on line 40

Pero tampoco veo claro que la funcion envie un correo, no se.

Gràcias

Etiquetas: adjuntos, correo, formulario
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 05:01.