Foros del Web » Programando para Internet » PHP »

Problema para mostrar html en mail

Estas en el tema de Problema para mostrar html en mail en el foro de PHP en Foros del Web. Hola, esta es una de mis primeras participaciones en los foros. Este me ha ayudado mucho, y creo que es hora de participar mas activamente. ...
  #1 (permalink)  
Antiguo 29/05/2008, 08:48
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Problema para mostrar html en mail

Hola, esta es una de mis primeras participaciones en los foros. Este me ha ayudado mucho, y creo que es hora de participar mas activamente. Preguntando, y en manera que pueda ayudando a los demas.

Antes que nada, aclaro que he leído varios posts que tocan el tema, pero no he encontrado solución, y estoy un poco confundido.

Tome un script que envía un newsletter via mail. Toma el html de un wysiwyg. El unico problema con el html enviado es cuando incluyo imágenes.

Por ej: El wysi me genera este html:
Código HTML:
<DIV><FONT size=2><IMG style="BORDER-RIGHT: 0px solid; BORDER-TOP: 0px solid; MARGIN: 0px; BORDER-LEFT: 0px solid; BORDER-BOTTOM: 0px solid" alt="encuentro 22 junio" src="http://www.sitio.net/images/Afiche_web.jpg"></FONT></DIV>
<DIV>&nbsp;</DIV> 
Yo simplemente capturo ese html asi: $_POST['mensaje']. Y le aplico nl2br() para que muestre correctamente los saltos de línea.

El problema es que el html que recibo en un mail es:

Código HTML:
<div><font size="2"><img style="" border-top:="" margin:="" 0px;="" border-left:="" solid;="" border-bottom:="" 0px="" solid\="" alt="\&quot;encuentro" 22="" junio\="" src="%5C%22http://www.sitio.net/images/Afiche_web.jpg%5C%22"></font></div></div> 
Agradezco su ayuda
  #2 (permalink)  
Antiguo 29/05/2008, 09:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema para mostrar html en mail

Hola chistoso,

Es muy extraño que te pase eso, ¿Como es que estás enviando los correos? ¿Que código utilizas?

Saludos.
  #3 (permalink)  
Antiguo 29/05/2008, 09:54
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: Problema para mostrar html en mail

La verdad, es un código que programó otro y le hice unas modificaciones (en otra parte del codigo, el tema del html no lo toque). Para enviar el mail utiliza una librería que nunca usé, pero se que anda por la web.

Código PHP:
foreach ( $salida as $destinatarios )
    {
        
$send_params['recipients']    = $destinatarios['email'];                            // The recipients (can be multiple)
        
$send_params['headers']        = array('Content-Type: text/html; charset=iso-8859-1\r\n; Mime-Version: 1.0\r\n',
                                            
'From: "sitio.Net" <[email protected]>',    // Headers
                                            
'To: '.$destinatarios['email'],
                                            
"Subject: $_POST[asunto]"
                                           
);
        
$send_params['from']        = '[email protected]';                                    // This is used as in the MAIL FROM: cmd
                                                                                            // It should end up as the Return-Path: header
        
$send_params['body']        = templateMail($_POST['mensaje']); 
la funcion templateMail lo unico que hace es concatenar el html con un template y aplicar nl2br(). Es decir, hace algo como:

Código PHP:
function templateMail($texto) {

$texto '<div class="estilo">'.nl2br($texto).'</div>';
return 
$texto;

luego, hace el send:

Código PHP:
$smtp smtp::connect($params);
$smtp->send($send_params); 
No se, sospecho que puede ser algun problema con las comillas o algo similar, pero no estoy seguro...
  #4 (permalink)  
Antiguo 29/05/2008, 15:10
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Problema para mostrar html en mail

¿De donde obtienes $_POST['mensaje']? ¿De algún editor WYSIWYG?

Saludos.
  #5 (permalink)  
Antiguo 30/05/2008, 07:01
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 15 años, 11 meses
Puntos: 5
Respuesta: Problema para mostrar html en mail

Claro, lo tomo de un wysiwyg... ayer no tuve tiempo de seguir verificando el script. Veamos hoy con la mente clara. Empezaré chequeando el código que genera el wysi.
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 23:31.