2011-09-03 12 views
6

La posta HTML con un'immagine incorporata in gmail - con il seguente corpo del messaggio di posta elettronica - sputa il testo esatto. Non mostra cosa c'è dentro i tag "body".Email HTML in Gmail - incorporamento di immagini

Questo è il contenuto del messaggio:

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 

Dove sto andando sbagliato?

Grazie per qualsiasi suggerimento!

+0

come stai generando la posta? – itsols

+0

Manualmente. Sto solo cercando di inviare una semplice mail da Gmail che contiene un'immagine incorporata. –

risposta

7

Ho seguito le istruzioni nella domanda 4018709 e ha funzionato bene. Per riassumere, è necessario che i content-id per l'allegato siano formattati come ID messaggio (che a loro volta sono formattati come indirizzi e-mail - con un @ e un dominio) e abbiano il valore dell'ID contenuto nell'intestazione della parte MIME di l'immagine racchiusa tra parentesi angolari (come fai già).

Quindi un'email di campione può apparire come segue:

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

Cosa fa quel "3D" dopo che gli uguali firmano nel tuo html? – doABarrelRoll721

+1

Come si può vedere dalle intestazioni MIME della parte HTML, la parte HTML viene codificata utilizzando la codifica "quoted-printable". Quoted-printable è una codifica di testo minima che consente di forzare una larghezza massima della linea suddividendo le linee lunghe con un carattere '=' (e puoi vedere che questo è usato nella riga 5 dell'HTML). Come tale, tutti i caratteri '=' nel contenuto (così come qualsiasi carattere non stampabile) devono essere "quotati" scrivendoli come '= '. quindi 'border =" 0 "' viene codificato in 'border = 3D" 0 "'. Per ulteriori informazioni, controlla la RFC 2045. – Guss

Problemi correlati