Comunidad de diseño web y desarrollo en internet online

envio mail desde php: se ve bien en gmail y mal en hotmail

Citar            
MensajeEscrito el 07 Abr 2009 02:00 pm
Hola estoy haciendo un script para enviar un newsletter desde un sitio. El newsletter esta compuesto por un texto html que tiene una imagen incluida y una alternativa de texto plano. El problema es que si bien todo anda perfecto cuando mando a una casilla de gmail (o a otra casilla con @mail y a otra casilla distinta), cuando mando a una casilla de hotmail, el cuerpo y el attach llegan vacios (no muestra el cuerpo del mail y el attach ocupa 0 bytes). No me muestra ni la parte HTML ni la de texto plano. El nombre del attach es detectado bien, pero no su contenido ni tamaño. Esta es la parte del codigo php encargada de mandar el mail:

Código PHP :

$uid = md5(uniqid(time()));
$uidalt = md5(uniqid(time())."htmlalt");
$headers = "MIME-Version: 1.0\r\n";
$headers .= "From: <$from>\r\n";
$headers .= "Reply-To: <$from>\r\n";
$headers .= "Return-path: <$from>\r\n";
$headers .= "Message-ID: <".time()."-".$from.">\r\n";
$headers .= "X-Mailer: PHP v".phpversion()."\r\n";
$headers .= "Content-type: multipart/related; boundary=$uid";
//inicio del cuerpo
$texto .= "--$uid\r\n";
$texto .= "Content-Type: multipart/alternative; boundary=$uidalt\r\n\r\n";
//version texto plano
$texto .= "--$uidalt\r\n";
$texto .= "Content-type: text/plain; charset=iso-8859-1\r\n";
$texto .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";
$texto .= imap_8bit("[CADENA TEXTO PLANO]")."\r\n";
//version html
$texto .= "--$uidalt\r\n";
$texto .= "Content-type: text/html; charset=iso-8859-1\r\n";
$texto .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n";
$texto .= imap_8bit("[CADENA HTML INCLUYENDO IMG DEL ATTACH]");
$texto .= "\r\n--$uidalt--\r\n";
//attach
$texto .= "--$uid\r\n";
$texto .= "Content-type: image/jpeg; name=\"$nombrearchivo\"\r\n";
$texto .= "Content-Transfer-Encoding: base64\r\n"";
$texto .= "Content-disposition: attachment; filename=\"$nombrearchivo\" \r\n";
$texto .= "Content-ID: <$nombrearchivo> \r\n";
$texto .= "X-Attachment-Id: $nombrearchivo \r\n\r\n";
$texto .= "$archivocodificadoabase64";
$texto .= "--$uid--\r\n\r\n";
ini_set ("sendmail_path", "/opt/exim/bin/exim -t -i -f $from");
mail($destinatario, $tema, $texto, $headers);

Les repito: si mando a gmail anda perfecto, si mando a hotmail no me muestra el contenido. El mail llega a hotmail al inbox (no a spam) y probe de marcarlo tambien como "contacto de confiaza". Tambien probe de usar un html completo (con los tags html, head y body) en la cadena del texto html pero no funciono. Cualquier ayuda es bienvenida. Gracias

Por egrasso

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 07 Abr 2009 02:29 pm
Utiliza phpmailer.

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 07 Abr 2009 11:46 pm
Gracias por la libreria, voy a usarla y espero que ande todo bien. De todas formas, me gustaria saber si alguien tiene idea de porque se ve bien en gmail y mail en hotmail, mas que nada para saber si era un error en mi codigo o un tema de hotmail.
saludos a todos

Por egrasso

1 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Abr 2009 04:28 pm
que tal...

yo tengo un problema similar, a ver si alguien puede ayudarme...

yo creo todo el cuerpo en html desde flex dinamicamente en una variable string y esta se la paso a php... segun yo todo el codigo esta bien tanto en flex como en php sin embargo en algunas ocasiones (solo en algunas no es siempre) se me muestra mal el correo en una cuenta de google y se muestra bien en hotmail....

lo que mando ademas de otras cosas es una tabla html con borde y creo los headers de la tabla normal con th y despues el contenido de esta en un for con td y en el correo muestra bien los th pero los td en ocaciones me los muestra mal solo en la cuenta de google y no en la de hotmail, lo que hace al parecer es agregar una celda al principio de cada fila y se muestran los datos a partir de la segunda... algo como esto:

Código :

<table>
    <tr><th>col 1</th><th>col 2</th><th>col 3</th></tr>
    <tr><td></td><td>data 1</td><td>data 2</td><td>data 3</td></tr>
</table>


me hace algo como eso y no logro entender por que... repito que en hotmail se muestra bien

si alguien sabe algo que lo publique :D:D

Por isantos

22 de clabLevel



 

Pachuca | Hgo | México

firefox
Citar            
MensajeEscrito el 21 Oct 2010 11:34 am
Yp probaria que existe resolicon inversa de tu ip, y despues mirar el sender id autorizarlo en microsoft

Espero te sirva

Por retros

1 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.