2011-09-03 13 views
6

El correo HTML con una imagen incrustada en gmail, con el siguiente cuerpo de correo electrónico, simplemente escupe el texto exacto. No muestra qué hay dentro de las etiquetas de "cuerpo".HTML Correo electrónico en Gmail: incrustación de imágenes

Este es el contenido del correo:

Content-Type: multipart/related; 

boundary="bananarepublic12345" 

This is a multipart message in MIME format. 

--banana12345republic 

Content-Type: text/html; charset=ISO-8859-1 

Content-Transfer-Encoding: 7bit 


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" 
     "http://www.w3.org/TR/html4/strict.dtd"> 
<html> 
<head> 
    <title>testing embedded image</title> 
</head> 
<body bgcolor="#000"> 
    <h1> Testing Embedded Image</h1> 
    <img src="cid:mambo" alt="ALTERNATE TEXT" > 
</body> 
</html> 

--bananarepublic12345 

Content-Type: image/jpeg; name=big-image1.jpg 

Content-Transfer-Encoding: base64 

Content-ID: <mambo> 

Content-Disposition: inline; 

filename="big-image1.jpg" 

/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQ...//2Q%3D%3D 

dónde voy mal ?

¡Gracias por cualquier sugerencia!

+0

cómo estás generando el correo? – itsols

+0

Manualmente. Solo intento enviar un correo simple de Gmail que tenga una imagen incrustada en él. –

Respuesta

7

He seguido las instrucciones en la pregunta 4018709 y funcionó bien. Para resumir, necesita los Id. De contenido para que el archivo adjunto tenga el formato de ID de mensaje (que a su vez tienen el formato de direcciones de correo electrónico, con un @ y un dominio) y tiene el valor de ID de contenido en el encabezado de parte MIME de la imagen encerrada en corchetes angulares (como ya lo hace).

lo tanto, un ejemplo de correo electrónico puede tener este aspecto:

Date: Fri, 2 Dec 2011 06:57:55 GMT 
Message-Id: <[email protected]> 
Content-Type: multipart/related; boundary="=-blabla"; type="multipart/alternative" 
From: Some sender <[email protected]> 
To: Me <[email protected]> 
Subject: HTML content with embedded images 
MIME-Version: 1.0 

--=-blabla 
Content-Type: text/html; charset="utf-8" 
Content-Transfer-Encoding: quoted-printable 

<html><body> 
<h1>Header</h1> 
<h2><a href=3D"http://geek.co.il">link</a></h2> 
<p> 
<img border=3D"0" = 
src=3D"cid:[email protected]"/> 
<p> 
</body></html> 

--=-blabla 
Content-ID: <[email protected]> 
Content-Disposition: inline; filename="image.png" 
Content-Type: image/png; name="image.png" 
Content-Transfer-Encoding: base64 

iVBORw0KGgoAAAANSUhEUgAAA9YAAAE2CAMAAACz7PorAAADAFBMVEUAAAC9... 
+0

¿Qué significa ese "3D" después del signo igual en tu html? – doABarrelRoll721

+1

Como puede ver en los encabezados MIME de la parte HTML, la parte HTML se codifica utilizando la codificación "imprimible entre comillas". Quoted-printable es una codificación de texto mínima que permite forzar un ancho de línea máximo mediante la división de líneas largas con un carácter '=' (y puede ver que esto se usa en la línea 5 del HTML). Como tal, todos los caracteres '=' en el contenido (así como cualquier carácter no imprimible) tienen que ser "citados" escribiéndolos como '= '. entonces 'border =" 0 "' se codifica en 'border = 3D" 0 "'. Para obtener más información, consulte RFC 2045. – Guss

Cuestiones relacionadas