Foros del Web » Programando para Internet » PHP »

Envío de HTML -se daña el texto-

Estas en el tema de Envío de HTML -se daña el texto- en el foro de PHP en Foros del Web. Que tal Masters, Estoy enviando contenido HTML vía email. En la vista previa de la página se ven bien los acentos, las ñ y todo. ...
  #1 (permalink)  
Antiguo 12/01/2007, 18:55
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Envío de HTML -se daña el texto-

Que tal Masters,

Estoy enviando contenido HTML vía email. En la vista previa de la página se ven bien los acentos, las ñ y todo.

Pero cuando llega al mail aparecen caracteres extraños en éstas posiciones, y queda algo como :
Código PHP:
Cisco destacó haber obtenido esa denominación en 2000 después 
Saben por qupe ocurre esto ? Como lo puedo corregir ?

Saludos y Gracias de Antemano.
__________________
EL LIMITE ES EL UNIVERSO
  #2 (permalink)  
Antiguo 13/01/2007, 05:50
Avatar de blakeyed  
Fecha de Ingreso: marzo-2004
Ubicación: Ahora mismo, Málaga
Mensajes: 78
Antigüedad: 20 años, 1 mes
Puntos: 0
Re: Envío de HTML -se daña el texto-

Al principio de la página, has indicado el charset ¿?

Te recomiendo, en php, ejecutar la línea

header("Content-Type: text/html; charset=utf-8");

utf-8 puedes cambiarlo por iso-8859-1 si quieres, según la codificación en la que estés haciendo la web.

De todas formas, para la muestra del contenido html, al enviar el mail, como también estará en html, utiliza htmlentities($cadena); Esta función, sustituirá todos los caracteres raros por su equivalente html:
á = á
ñ = ñ
etc

Suerte!
__________________
Saludos

Gaspar Fernández
Poesía Binaria
  #3 (permalink)  
Antiguo 13/01/2007, 16:26
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Re: Envío de HTML -se daña el texto-

Hola Master, me explico un poco más,

el envío del HTML lo hago de esta forma :

Código PHP:
ob_start(); 
include (
'/vservers/midominio/htdocs/paginas/modules/reports/claim_spanish.php'); 
$html=ob_get_contents();
ob_end_clean();

$mails=$am_email.",".$row_Recordset1['email'];
$remitente=$_GET['account_manager'];

$sfrom=$am_email//cuenta que envia 
$sdestinatario=$mails//cuenta destino 
$ssubject="Reporte del "." "."#"." ".$claim_id//subject 
$shtml="$html"
$sheader="From:".$remitente."\nReply-To:".$sfrom."\n"
$sheader=$sheader."X-Mailer:PHP/".phpversion()."\n"
$sheader=$sheader."Mime-Version: 1.0\n"
$sheader=$sheader."Content-Type: text/html"
Anotando que la página que se envía "claim_spanish.php" tiene en el head :

Código PHP:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"
Así entonces, que estará fallando ?

Gracias de nuevo.
__________________
EL LIMITE ES EL UNIVERSO
  #4 (permalink)  
Antiguo 13/01/2007, 17:22
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Re: Envío de HTML -se daña el texto-

Veo que los elemento "estáticos" del html que usan tildes llegan bien. Los que llegan mal son los que son tomados de la base de datos............................Alguna idea ?
__________________
EL LIMITE ES EL UNIVERSO
  #5 (permalink)  
Antiguo 13/01/2007, 17:43
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: Envío de HTML -se daña el texto-

Cita:
Iniciado por jpogsistem Ver Mensaje
Veo que los elemento "estáticos" del html que usan tildes llegan bien. Los que llegan mal son los que son tomados de la base de datos............................Alguna idea ?
Revisa el tipo de codificación de tu base de datos. Puedes hacerlo desde la configuración, con phpmyadmin.

Suerte.
  #6 (permalink)  
Antiguo 13/01/2007, 17:45
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Re: Envío de HTML -se daña el texto-

Usando :

Código PHP:
$sheader=$sheader."Content-Type: text/html; charset=utf-8"
Se vé todo el contenido bien en Outlook, pero en hotmail, aparecen los caracteres extraños..................Que será ???

Además veo que en hotmail no usa el css del diseño del html a pesar de que lo he incluido bajo la ruta absoluta http://www.midominio.com/pagina/estilos/estilo.css


Saludos.
__________________
EL LIMITE ES EL UNIVERSO

Última edición por jpogsistem; 13/01/2007 a las 17:52
  #7 (permalink)  
Antiguo 13/01/2007, 17:55
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Re: Envío de HTML -se daña el texto-

Cita:
Iniciado por david_M_G Ver Mensaje
Revisa el tipo de codificación de tu base de datos. Puedes hacerlo desde la configuración, con phpmyadmin.

Suerte.
Gracias por el consejo..............Cual debería ser el tipo de codificación correcto en la DB ? utf-8 tambien ?.Saludos.
__________________
EL LIMITE ES EL UNIVERSO
  #8 (permalink)  
Antiguo 13/01/2007, 17:58
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Re: Envío de HTML -se daña el texto-

Sí, UTF-8.

Pero si dices que con outlook se ve bien... es posible que estés visitando hotmail con otra codificación en el navegador.
  #9 (permalink)  
Antiguo 13/01/2007, 18:05
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Re: Envío de HTML -se daña el texto-

Bueno, tengo varios UTF, ...........

__________________
EL LIMITE ES EL UNIVERSO
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:37.