Hola davidj, podrías hacer lo siguiente:
1. Reemplaza todas las líneas donde pones $message = "..."; por la función
ob_start() PHP para que puedas tenerlo en menos líneas. El código de reemplazo donde están las líneas
$message quedaría así:
Código PHP:
ob_start();
include("templates/template-mail.tpl");
$message = ob_get_contents();
ob_end_flush()
Lo que hace la función ob_start() es (en términos sencillos) encerrar todo el contenido del archivo que incluyes en un buffer el cual lo vas a procesar más adelante enviando el email con la función mail(). Hasta aquí, es todo lo que debes hacer para reducir esas líneas muy largas de tu código actual por este que te estoy dando.
template-mail.tpl es (obviamente) un template que contiene todo el código HTML del mensaje que vas a enviarlo. En este archivo coloca todo el código y reemplaza las variables
$nombre,
$empresa y las demás por
$_POST['nombre'],
$_POST['empresa'] y borrar las líneas:
Código PHP:
$nombre = $_POST['nombre'];
$empresa = $_POST['empresa'];
$e_mail = $_POST['mail'];
$telefono = $_POST['telefono'];
$direccion = $_POST['direccion'];
$poblacion = $_POST['poblacion'];
$mensaje = $_POST['mensaje'];
Bueno esta es una recomendación mía que la puedes implementar en este y varios proyectos para poder simplificar aún más las líneas de tu código fuente y además poder cargar otros tipos de mails a enviar según el tipo de usuario y demás cosas, es una recomendación que tal vez te sea muy útil en algún momento. Personalmente lo estuve usando en un proyecto hace unos meses atrás.
2. En la línea de los headers (
$header .= "Content-Type: text/html; charset=ISO-8859-1\r\n";) podrías probar reemplazando el charset de ISO-8859-1 a UTF-8 para que pueda funcionarte sin ningún problema en cualquier cliente de correo electrónico y también ponle esto mismo en la cabecer del código HTML del template de tu mail a enviar, porque por lo que veo en la cabecera del mail tienes ISO-8859-1 y en la de tu página web tienes UTF-8. Prueba lo que te he dicho y si no te funciona prueba poniendo ambos headers (el del mail y el de la página) en uno de ellos, es decir, en ISO-8859-1 o bien UTF-8 en ambos headers. Tal vez sea esta una solución a tu problema, si te funciona puedes aviarlo para comprobar que tal te fue.
Bueno davidj, espero te sirvan mis recomendaciones al respecto.
Saludos,
Un abrazo!