Buenas, antes de nada felicitar a toda la peña que hace posible este gran foro, que me ha ayudado muchisissimas veces... GRACIAS.
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:
//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>';
}
}
?>
Y el código del class (la parte relevante):
Código:
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';
Por si sirve de algo también, en la web donde se recogen los datos el char es:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Gracias.