Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/10/2009, 07:34
MauXXI
 
Fecha de Ingreso: junio-2008
Mensajes: 51
Antigüedad: 15 años, 11 meses
Puntos: 2
Bueno, no utilizé utf8_encode() ni utf8_decode porque no sabía que existían jeje.
htmlspecialchars() no sirve para transformar caracteres acentuados o eñes.

En Hotmail me llegan en la bandeja de entrada, sin ningún tipo de advertencia y el cuerpo del mensaje en blanco totalmente, inclusive si busco algo viendo el código fuente no encuentro nada.

Utilizaré el utf8_encode() a ver si se soluciona el problema de Yahoo! Mientras tanto me preocupa mucho el hecho de que llegue de esa forma a Hotmail porque mucha gente usa ese servicio.

Saludos.

Ahora que utilizé utf8_encode() estoy habilitado a decir que no funcionó, me llegó bien a GMail pero a Yahoo! me siguen llegando esos horribles caracteres.

Yo deseo que al revisar esos caracteres acentuados en el código fuente se vean sus entidades y no los caracteres acentuados. Sólo lo he logrado en un archivo de prueba con htmlentities() pero a la hora de enviar los emails no funcionan.

Ahora estoy intentando usar SMTP con PHPMailer para ver si puedo solucionar el tema de Hotmail y el cuerpo de mensaje vacío.

Saludos.

Asunto solucionado con Hotmail.
Sólo tengo que autenticar el servidor SMTP con PHPMailer de la siguiente manera:
Código PHP:
$mail->IsSMTP();
$mail->Host     "smtp.gmail.com";
$mail->SMTPAuth true;
$mail->SMTPSecure 'ssl';
$mail->Port 465;
$mail->Username '[email protected]';
$mail->Password '*****'
Ahora se unió Hotmail a Yahoo! en el problemas de los caracteres acentuados.
GMail es el único que lee perfectamente los caracteres.
Uso un texto de prueba que es:
Código:
Lórém ípsúm dálor sit amet, ...
El cual llega perfecto a Gmail pero en Yahoo! y Hotmail llega así:
Código:
Lórém Ã*psúm dálor sit amet, ...
Saludos y espero que me ayuden.

Seguí avanzando con mis pruebas y errores y no doy con la respuesta.
Utilizé htmlentities() pero me seguía devolviendo los caracteres acentuados y no las entidades de los mismos.

¿Tendrá algo que ver $_POST?
Porque he hecho una prueba en un archivo aparte y funcionó bien.

Intenté también con strtr() y no me reemplaza los caracteres de $_POST['texto'].
Cada vez estoy más convencido de que es $_POST.
Seguiré haciendo pruebas y se los informaré.

RESOLVÍ EL PROBLEMA!!!!

Al parece include() tiene un raro funcionamiento en cuanto a caracteres especiales.
Al principio del script yo llamo al archivo modelo.php que contiene dos variables ($cuerpo que contiene más variables y código HTML y $cuerpo2 con variables y texto plano).
La forma de solucionarlo es que al usar la variable $cuerpo tengo que incluiro dentro de la función utf8_decode().

Esta línea
Código PHP:
$mail->Body $cuerpo
debe escribirse
Código PHP:
$mail->Body utf8_decode($cuerpo); 
y listo, asunto solucionado.

Gracias a todos los que me ayudaron.
Oh lo siento el gracias es sólo y unicamente para mi
También debe llevarse el crédito un post de este mismo foro pero como no puedo colocar URL... y su creador que al igual que yo lo solucionó sólo.

Saludos.

Última edición por GatorV; 07/10/2009 a las 15:16