type images imagen how data html email ipad gmail base64

html - images - Imágenes de Base64 a gmail



imagen en base64 (5)

Estoy generando algunas imágenes en línea para un correo electrónico enviado desde el iPad. Se ve muy bien en todos los clientes de correo electrónico de escritorio, pero a gmail no parece gustarle la imagen base64 y se muestra como texto.

¿Alguien tiene algo de suerte para insertar imágenes con base64 y gmail? ¿O conoce una mejor solución para enviar correos electrónicos HTML con imágenes desde el iPad?


Asegúrese de establecer Content-Type: multipart / mixed; , límite y codificación de transferencia de contenido: base64


Los enlaces de Moin Zaman muestran resultados de pruebas que están desactualizados (desde 2008). A partir de mis exhaustivas pruebas hoy, Gmail admite la visualización de imágenes incrustadas para ambos métodos.

Utilice la imagen de codificación base64 en línea dentro de <img src="...">

<html><body><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9QAAADmCAIAAAC77FroAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAO..."></body></html>

Utilice la imagen codificada en base64 como archivo adjunto

Message-ID: <[email protected]> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [xxx.xxx.xxx.xxx] Content-Type: multipart/related; boundary="_038_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_"; type="multipart/alternative" MIME-Version: 1.0 Return-Path: [email protected] X-OriginatorOrg: example.com --_038_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_ Content-Type: multipart/alternative; boundary="_000_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_" ...skipping Content-Type: text/plain which would be here for this example... --_000_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable <html><body><img border=3D"0" width=3D"980" height=3D"230" id=3D"Picture_x0020_1" src==3D"cid:[email protected]"></body></html> --_000_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_-- --_038_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_ Content-Type: image/png; name="image001.png" Content-Description: image001.png Content-Disposition: inline; filename="image001.png"; size=32756; creation-date="Mon, 08 Oct 2012 15:27:07 GMT"; modification-date="Mon, 08 Oct 2012 15:27:07 GMT"; Content-ID: <[email protected]> Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAA9QAAADmCAIAAAC77FroAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAO xAAADsQBlSsOGwAAf5lJREFUeF7tvQlgVdW18L+ZR20mpsSLCYlBQKwgwRCMr9TAqzg0CAl98Y9a ikBfHxL1A/r0tUr77Feg1mDav4LUijxTk8hLRIstQ2mJhEiAWAEpNCGRa8KUSQXCzLf2cOZz7j33 5s5Zx6j3nruHtX97n33WWWfttbtdv36d4IEEkAASQAJIAAkgASSABJCA/wl0938VWAMSQAJIAAkg ASSABJAAEkAClAAq3zgOkAASQAJIAAkgASSABJBAgAig8h0g0FgNEkACSAAJIAEkgASQABJA5RvH ...

Para hacer sus propias pruebas, puede enviar correos electrónicos con imágenes incrustadas en línea usando una de las siguientes técnicas

Envíe un correo electrónico usando uno de los anteriores a su cuenta de Gmail, luego abra el Correo electrónico en Gmail Web Client (cualquier navegador que funcione) y use la flecha hacia abajo junto al botón Responder para elegir la opción Mostrar original. Esto le mostrará cómo se recibe.

Creo que la mejor práctica es usar la imagen incrustada como método de adjunto.

En mis pruebas con Gmail Web Client, si enviaba 30 imágenes en un solo correo electrónico de diferentes tamaños, algunas no se cargarían correctamente mostrando el contenedor de imágenes, pero no la imagen. Si eso sucede, intenta volver a cargar la página.

En mi prueba (Windows 7) ...

  • Chrome (último) necesitaba un par de recargas para cargar / mostrar con éxito las 30 imágenes
  • Opera (último) no mostraría correctamente las 30 imágenes, independientemente del número de recargas
  • Firefox (último) muestra consistentemente las 30 imágenes sin problema
  • Internet Explorer 9 (último) muestra consistentemente las 30 imágenes sin problema
  • Safari (último) mostró consistentemente las 30 imágenes sin problema


Prueba con estos amigos ... Estoy seguro de que esto funcionaría para incluir una imagen como archivo adjunto

$output_hex_string_img = $image; $output_bin_string_img = base64_decode($output_hex_string_img); //echo base64_encode( $output_bin_string_img ); $XXX = base64_encode( $output_bin_string_img ); $from_name = "Senders Name"; $from_mail = "[email protected]"; $replyto = "[email protected]"; $subject = "Device Missing Notification"; $message = "Device Missing notification has been activated on your device. Please change this setting when you find your smartphone back. Best Of Luck!!/r/r "; $mailto = ''[email protected]''; $file = $XXX; $filename = "Print_shot.png"; $uid = md5(uniqid(time())); $name = basename($file); $header = "From: ".$from_name." <".$from_mail.">/r/n"; $header .= "Reply-To: ".$replyto."/r/n"; $header .= "MIME-Version: 1.0/r/n"; $header .= "Content-Type: multipart/mixed; boundary=/"".$uid."/"/r/n/r/n"; $header .= "This is a multi-part message in MIME format./r/n"; $header .= "--".$uid."/r/n"; $header .= "Content-type:text/html; charset=iso-8859-1/r/n"; $header .= "Content-Transfer-Encoding: 7bit/r/n/r/n"; $header .= $message."/r/n/r/n"; $header .= "--".$uid."/r/n"; $header .= "Content-Type: application/octet-stream; name=/"".$filename."/"/r/n"; // use different content types here $header .= "Content-Transfer-Encoding: base64/r/n"; $header .= "Content-Disposition: attachment; filename=/"".$filename."/"/r/n/r/n"; $header .= $file."/r/n/r/n"; $header .= "--".$uid."--"; mail($mailto, $subject, "", $header);

Pero debe incluir todo dentro de los encabezados utilizando diferentes encabezados de Tipo de contenido. y lo que aparezca en el cuerpo que podría ser el tercer parámetro en la función de correo se pasará como una cadena en blanco.


MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; [picker addAttachmentData:UIImageJPEGRepresentation(_tempImage,1) mimeType:mimeType fileName:filename]; [picker setMessageBody:emailBody isHTML:YES];

Si isHTML es YES , addAttachmentData cambiará automáticamente a la cadena base64, en el correo electrónico html puede verte img.

Si isHTML es NO, addAttachmentData es un archivo adjunto.