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.