2011-09-03 14 views
6

Gömülü bir resimle, gmail'e (aşağıdaki e-posta gövdesine sahip) sahip olan HTML e-postası, tam metni tam olarak harcar. "Vücut" etiketlerinin içinde ne olduğunu göstermez.HTML Gmail'de e-posta gönder Resim kaydetme

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 

Ben yanlış gidiyorum:

Bu postanın içeriği nedir?

Herhangi bir öneriniz için teşekkürler!

+0

postayı ürettiğini nasıl? – itsols

+0

El ile. Sadece gömülü bir görüntü içeren gmail'den basit bir posta göndermeye çalışıyorum. –

cevap

7

Söz konusu yönergeleri izledim 4018709 ve güzel çalıştı. Özetlemek gerekirse, eklerin ileti kimlikleri gibi biçimlendirilmesi için içerik kimlikleri gerekir (bunlar, @ ve etki alanıyla birlikte e-posta adresleri gibi biçimlendirilir) ve MIME bölüm başlığında içerik kimliği değerine sahip olurlar. Görüntü köşeli parantez içine alınmış (zaten yaptığınız gibi).

Yani bir örnek e-posta gibi görünebilir:

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

Bu "3D", eşittir sonra html oturum açın? – doABarrelRoll721

+1

HTML bölümünün MIME başlıklarından da görebileceğiniz gibi, HTML bölümü "basılabilir yazdırılabilir" kodlama kullanılarak kodlanır. Yazdırılabilir yazdırılabilir, uzun satırları bir '=' karakteriyle ayırarak maksimum çizgi genişliğini zorlayan minimal bir metin kodlamasıdır (ve bunun, HTML'nin 5. satırında kullanıldığını görebilirsiniz). Bu nedenle, içerikteki tüm '=' karakterlerin (basılabilir olmayan herhangi bir karakterin yanı sıra), '= 'olarak yazılarak" alıntılanması "gerekir. yani border = "0" 'border = 3D" 0 "' şeklinde kodlanır. Daha fazla bilgi için, check-out RFC 2045. – Guss