Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/10/2011, 11:02
paulrivers
 
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>