Hola Pablobarcos,
La mejor manera sería enviar también las cabeceras, te pongo el código que yo uso a ver si te vale.
Pongo también la función htmlentities para recibir el mail con los acentos y las ñ correctamente.
Código PHP :
<?php
function caracteres_html($texto){
$texto = htmlentities($texto, ENT_NOQUOTES, 'UTF-8'); // Convertir caracteres especiales a entidades
$texto = htmlspecialchars_decode($texto, ENT_NOQUOTES); // Dejar <, & y > como estaban
return $texto;
}
//estas variables las usaremos en el comando 'mail()' para costruir el email.
//DEBE CAMBIAR EL VALOR DE $destinatario por la dirección de correo que va a recibir el email:
$destinatario="[email protected]";
$tipo="html";
$nombre = caracteres_html($_POST['nombre']);
$tel = caracteres_html($_POST['telefono']);
$emp = caracteres_html($_POST['emp']);
$mail = caracteres_html($_POST['mail']);
$comentarios = caracteres_html($_POST['body']);
//estos datos se usaran como cabecera del email.
/*$cabeceras="MIME-Version: 1.0\r\n";
$cabeceras.="X-Mailer: PHP/" . phpversion() . " \r\n";
$cabeceras.= "Content-type: text/html; charset=utf-8\r\n";*/
$cabeceras="Content-type: text/html\n";
$cabeceras.="From: Consulta desde la WEB <[email protected]> \r\n";
$cabeceras.="Reply-To: {$mail}\r\n";
//el asunto del mensaje:
$asunto=caracteres_html($_POST['subject']);
/*
el comando 'mail(destinatario,asunto,cuerpo del mensaje, [parametros adicionales])'
envia un email y devuelve true si el email fue aceptado para su envio,
encaso contrario devuenve false.
*/
if(mail($destinatario, $asunto, "<html> <b>$nombre</b> ha enviado una consulta a traves desde la web<br><br/>
<b>Nombre:</b> $nombre <br/>
<b>Empresa:</b> $emp<br/>
<b>Telefono:</b> $tel<br/>
<b>E-mail:</b> $mail<br/><br/>
<b>Comentarios:</b> $comentarios<br/><br/><br/>
PRUEBA FORM<br/>",$cabeceras)){ ?>
<? echo "enviado"; } else { echo "no enviado"; } ?>
Con esto podrás responder directamente al que te lo ha enviado, esto es debido al envío de las cabeceras, más concretamente:
Código :
$cabeceras="Content-type: text/html\n";
Donde esto te indica el formato del mail (html)
Código :
$cabeceras.="From: Consulta desde la WEB <[email protected]> \r\n";
Esta parte es de donde viene (Form que aparece cuando te llega el mail)
Código :
$cabeceras.="Reply-To: {$mail}\r\n";
Y este es el que dice a quien tiene que responder
aplicándolo aquí:
Código :
if(mail($destinatario, $asunto, $msg, $cabeceras)){ echo "enviado"; } else { echo "no enviado"; }
Espero que te valga.
Salu2