Apakah kehadiran header Content-ID dalam email MIME berarti bahwa lampiran harus disematkan?

11

Dua produk email pihak ketiga yang berbeda yang kami miliki bereaksi berbeda terhadap keberadaan header konten-id di sumber MIME email. Ini menghasilkan pengalaman pengguna yang tidak konsisten yang kami coba selesaikan.

Ini sebuah contoh:

--boundary-example
Content-Location: CID:somethingatelse 
Content-ID: <foo4atfoo1atbar.net>
Content-Type: IMAGE/GIF
Content-Transfer-Encoding: BASE64

R0lGODlhGAGgAPEAAP/////ZRaCgoAAAACH+PUNv
cHlyaWdodCAoQykgMTk5LiBVbmF1dGhvcml6ZWQgZHV
wbGljYXRpb24gcHJvaGliaXRlZC4A etc..

Satu produk email mengartikan ini sebagai gambar yang disematkan. Yang lain menafsirkan ini sebagai lampiran biasa (tidak tertanam). Jika kami benar-benar menghapus baris Content-ID , kedua produk berpikir lampiran tidak tertanam.

Apakah ada RFC spesifik yang secara definitif menyimpulkan perilaku mana yang benar? Seorang kolega dan saya meninjau RFC2392 yang dalam abstrak pembuka mengatakan:

Penggunaan [MIME] dalam email untuk menyampaikan halaman Web dan
gambar yang terkait membutuhkan skema URL untuk mengizinkan HTML merujuk
ke gambar atau data lain yang termasuk dalam pesan.
Pencari Sumber Daya Seragam Content-ID , "cid:", melayani tujuan itu. [...] Skema "cid" mengacu pada bagian tubuh tertentu dari pesan; penggunaannya umumnya terbatas pada referensi ke bagian tubuh lain dalam pesan yang sama dengan bagian tubuh pengarah. Skema "pertengahan" juga dapat merujuk ke bagian tubuh tertentu dalam pesan yang ditunjuk, dengan memasukkan alamat ID-konten.

Jadi, meskipun tidak mutlak, kami cenderung percaya bahwa karena semua item yang disematkan memerlukan cid untuk merujuknya, dan bahwa "umumnya terbatas pada bagian tubuh lain dalam pesan yang sama," dan bahwa lampiran tidak memerlukan cid , itu adalah perilaku yang masuk akal untuk produk email untuk memperlakukan keberadaan cid, sebagai indikator "niat untuk menanamkan".

Bisakah saya mendapatkan konfirmasi tentang ini?

Mike B
sumber
tanya penulis RFC atau WET IETF yang relevan, mungkin?
sendmoreinfo

Jawaban:

8

Itu Content-IDtidak menunjukkan bahwa gambar harus ditampilkan sebaris. Header ini diperlukan untuk referensi data yang disematkan dalam HTML.

Karena email adalah pesan teks, tidak ada alasan untuk menampilkan gambar yang disematkan, asalkan surat itu berupa teks biasa.

Beberapa klien menampilkan data sebaris terlepas dari format apakah itu HTML atau teks biasa. Tapi ini bukan perilaku yang jelas

Thomas Berger
sumber
8

Saya pikir Anda sedang mencari Content-Dispositionbidang header, yang memungkinkan Anda menentukan gaya presentasi bagian tubuh (seperti gambar) menjadi inlineatau attachment.

Berikut ini contoh inline yang dibuat oleh Thunderbird:

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

Anda dapat membaca lebih lanjut di:

james.garriss
sumber
Header Content-Disposition tidak selalu disertakan. Kadang-kadang diperlukan untuk memperoleh apakah suatu bagian inline atau lampiran berdasarkan header yang disediakan dalam pertanyaan.
user2817219