Esta vez, tengo un problema con el conocido PHPmailer...
Todo funciona correctamente, envía los mails, valida los campos, todo aparentemente bien, pero:
"LOS CORREOS ME LLEGAN CON LOS CARACTERES MAL"
Explico:
Si envías = recibes (aclaración)
Antón = antÓn
El código lo he cambiado entre: UTF-8 y el ISO, pero en los dos me llega mal.
Código del enviar el correo:
Código:
Y el código del class (la parte relevante)://CONFIGURACION
$maximo_tamano= '6000000'; //tamaño maximo de los archivos. 100000 equivale a 100kb.
$direccion_envio='mi dirección de correo'; //la direccion a la que se enviara el email.
$url='http://www.donde esta el formulario.es/contacto.php'; //la URL donde esta publicado el formulario. SIN la barra al final
//FIN CONFIGURACION
?>
<?PHP
//proceso del formulario
// si existe "enviar"...
if (isset ($_POST['enviar'])) {
// vamos a hacer uso de la clase phpmailer,
require("class.phpmailer.php");
$mail = new PHPMailer();
//recogemos las variables y configuramos PHPMailer
$mail->From = $_POST['email'];
$mail->FromName = $_POST['nombre'];
$mail->AddAddress($direccion_envio);
$mail->Subject = $_POST['departamento'];
$mail->AddReplyTo($_POST['email'],$_POST['nombre']);
$mail->IsHTML(true);
$empresa=$_POST['empresa'];
$cargo=$_POST['cargo'];
$sector=$_POST['sector'];
$empleados=$_POST['empleados'];
$facturacion=$_POST['facturacion'];
$telefono=$_POST['telefono'];
$fax=$_POST['fax'];
$direccion=$_POST['direccion'];
$cp=$_POST['cp'];
$poblacion=$_POST['poblacion'];
$gestion=$_POST['gestion'];
if (isset($_POST['boss'])) {
$boss=$_POST['boss'];
}
if (isset($_POST['crm'])) {
$crm=$_POST['crm'];
}
if (isset($_POST['solucionesmovilidad'])) {
$solucionesmovilidad=$_POST['solucionesmovilidad'];
}
if (isset($_POST['solucionesventa'])) {
$solucionesventa=$_POST['solucionesventa'];
}
if (isset($_POST['reporting'])) {
$reporting=$_POST['reporting'];
}
if (isset($_POST['mensajeria'])) {
$mensajeria=$_POST['mensajeria'];
}
if (isset($_POST['intranet'])) {
$intranet=$_POST['intranet'];
}
if (isset($_POST['gestiondocumental'])) {
$gestiondocumental=$_POST['gestiondocumental'];
}
if (isset($_POST['infraestructuras'])) {
$infraestructuras=$_POST['infraestructuras'];
}
if (isset($_POST['business'])) {
$business=$_POST['business'];
}
$solucion=$_POST['solucion'];
$comentario=$_POST['comentario'];
//comprobamos si todos los campos fueron completados
if ($_POST['email']!='' && $_POST['nombre']!='' && $_POST['empresa']!='' && $_POST['telefono']!='' && $_POST['cp']!='') {
//armamos el html
$contenido = '<html><body>';
$contenido .= '<p>Mensaje enviado el '. date("d M Y").'</p>';
$contenido .= '<hr />';
$contenido .= '<h3>Datos personales:</h3>';
$contenido .= '<p>Nombre: <strong>'.$_POST['nombre'].'</strong>';
$contenido .= '<p>Email: <strong>'.$_POST['email'].'</strong>';
$contenido .= '<hr />';
$contenido .= '<h3>Datos de la empresa:</h3>';
$contenido .= '<p>Empresa: <strong>'.$empresa.'</strong>';
$contenido .= '<p>Cargo: <strong>'.$cargo.'</strong>';
$contenido .= '<p>Sector: <strong>'.$sector.'</strong>';
$contenido .= '<p>Empleados: <strong>'.$empleados.'</strong>';
$contenido .= '<p>Facturación: <strong>'.$facturacion.'</strong>';
$contenido .= '<p>Teléfono: <strong>'.$telefono.'</strong>';
$contenido .= '<p>Fax: <strong>'.$fax.'</strong>';
$contenido .= '<p>Dirección: <strong>'.$direccion.'</strong>';
$contenido .= '<p>CP: <strong>'.$cp.'</strong>';
$contenido .= '<p>Población: <strong>'.$poblacion.'</strong>';
$contenido .= '<p>Gestión actual: <strong>'.$gestion.'</strong>';
$contenido .= '<hr />';
$contenido .= '<h3>Áreas de interés:</h3>';
$contenido .= '<p>Campos seleccionados:';
if (isset($_POST['boss'])) {
$contenido .= '<strong> '.$boss.',</strong>';
}
if (isset($_POST['crm'])) {
$contenido .= '<strong> '.$crm.',</strong>';
}
if (isset($_POST['solucionesmovilidad'])) {
$contenido .= '<strong> '.$solucionesmovilidad.',</strong>';
}
if (isset($_POST['solucionesventa'])) {
$contenido .= '<strong> '.$solucionesventa.',</strong>';
}
if (isset($_POST['reporting'])) {
$contenido .= '<strong> '.$reporting.',</strong>';
}
if (isset($_POST['mensajeria'])) {
$contenido .= '<strong> '.$mensajeria.',</strong>';
}
if (isset($_POST['intranet'])) {
$contenido .= '<strong> '.$intranet.',</strong>';
}
if (isset($_POST['gestiondocumental'])) {
$contenido .= '<strong> '.$gestiondocumental.',</strong>';
}
if (isset($_POST['infraestructuras'])) {
$contenido .= '<strong> '.$infraestructuras.',</strong>';
}
if (isset($_POST['business'])) {
$contenido .= '<strong> '.$business.',</strong>';
}
$contenido .= '</p>';
$contenido .= '<p>Opción sectorial: <strong>'.$solucion.'</strong>';
$contenido .= '<p>Comentario: <strong>'.$comentario.'</strong>';
$contenido .= '<hr />';
$contenido .= '</body></html>';
$mail->Body = $contenido;
// si todos los campos fueron completados enviamos el mail
$mail->Send();
$flag='ok';
$url="http://www.web donde esta.es/envio_correcto.php";
echo "<SCRIPT>window.location='$url';</SCRIPT>";
} else {
//si no todos los campos fueron completados se frena el envio y avisamos al usuario
$flag='err';
$mensaje='<p><span style="color:red;">* Por favor, rellene los campos incompletos</span> '.$error_archivo.'</p>';
}
}
?>
Código:
Por si sirve de algo también, en la web donde se recogen los datos el char es: public $CharSet = 'UTF-8';//retoques miosssssssssssssssssssssssssssss, puede ser: 'UTF-8 /** * Sets the Content-type of the message. * @var string */ public $ContentType = 'text/plain'; /** * Sets the Encoding of the message. Options for this are * "8bit", "7bit", "binary", "base64", and "quoted-printable". * @var string */ public $Encoding = '8bit';
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Gracias.


