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