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";
}
}
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($oFichero, filesize($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));
}
}
?>
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>