Kodiranje slika u email-u.

Leka

Aktivan član
Poruka
1.677
Posto poznajem HTML,zanimalo me je kako email klijenti "pakuju" slike i ostale fajlove u email.Pogledao sam source
pisma,i u Outlooku Expres i U Bat-u,prvi zakljucak je bio da The Bat ima mnogo "cistiji" kod. :)
Osim osnovnih podataka,kome ide pismo i ostalih,zapazio sam da pre pocetka kodnog zapisa slike je oznaka:

Content-Transfer-Encoding: base64

Konsultovao sam google i dobio da je to nacin kodovanja,64 odnosno 65 karaktera ukljucujuci "=" u parovima po 6 bita.
Dobije se 30% vise na velicini izvornog oblika slike.

Dobro,toliko sam shvatio ali moja pitanja su sledeca:

-Zasto je potrebno kodovati sa base64 ako je slika vec u nekom brojevnom zapisu?

-Kako se slika uopste razlaze na brojeve?


Unapred zahvaljujem na svakom vasem odgovoru ili postavljenom linku.

Poz.
 
Leka:
Samo da se nadovezem,sada sam se bacio na proucavanje MIME-a,ali i dalje mi nije jasno cemu duplo kodiranje. :? Valjda cu dobiti odgovor.

Na dobrom si putu!!! Samo guraj tako! :wink:

MIME je !!!TEKSTUALNI!!! format u kome se net-om šalju email-ovi. Ako iz Outlook Express-a snimiš mail kao .eml fajl, to je običan tekstualni fajl - ono što vidiš kada pogledaš Message Source.

Suština MIME-a je da možeš da pošalješ email sa više delova. Npr. ako koristiš Outlook Express da pošalješ email i u meniju Format izabereš RichText(HTML), on će prvo da izređa razne promenljive - return path, from, to, date, ..., a zatim idu delovi poruke.

Prvi deo poruke je Plain Text varijatna email-a. Ako onaj kome šalješ mail otvori poruku koristeći neki tekstualni mail client program (na primer Pine pod linux-om), videće ovaj tekst.

Drugi deo će biti HTML verzija iste poruke koju će otvoriti mail client programi koji imaju podršku za to - npr. KMail pod linux-om ili Outlook i Outlook Express pod Windows-om. The BAT takođe ima opcije da li da šalje mail samo kao Plain Text ili da šalje i HTML varijantu ili čak obe kako to Outlook Express radi.

Ostali delovi predstavljaju fajlove koji su dodati mail-u kao Attachment-i.


Što se prvog pitanja tiče - #Čemu služi base64 encoding?". Odgovor je: Ceo email se šalje kao jedan TEKSTUALNI fajl, a slike su BINARNI fajlovi! (Dakle, suština nije da li su u pitanju slike ili neki drugi attachment koji je binarni fajl.) base64 encoding omogućava da se binarni fajl konvertuje u tekstualni, i da se vrati u binarni po završenom transferu email-a.

U slučaju da sliku direktno ugradiš u tekst email-a pisanog u RichText-u, a uključena ti je opcija da se slike ugrađuju u email, Outlook Express će dodati MIME deo email-a sa slikom u base64 formatu, a u tagu IMG će kao source (src) navesti "cid:" pa onda id MIME dela koji sadrži sliku. Slično važi i za background sound... ili jednostavnije, za svaki binarni fajl koji je ugrađen u email, bilo direktno ili kao attachment.


Što se daljeg upućivanja u MIME i base64 encoding tiče, pravo mesto za traganje su RFC-ovi (Request For Comments), evo par web adresa za početak:

http://www.rfc-archive.org
http://www.rfc-editor.org

Svaki RFC ima svoj broj i opisuje neku temu. Potraži

:idea: rfc1341 - MIME (Multipurpose Internet Mail Extensions)

on sadrži sve o base64! Takođe, vidi i:

MIME RFC's to date, by date:
RFC 2112
RFC 2045
RFC 1872
RFC 1521
RFC 1421

a može i RFC 2045, RFC 2046, RFC 2047, RFC 2048, RFC 2049
 
Leka:
Dobije se 30% vise na velicini izvornog oblika slike.

Tačno! Možda nije uvek 30%, ali se veličina fajla povećava. Dobra stvar je što fajl postaje tekstualni. Loša je što mu se veličina povećava.

Zbog toga, ako nekome šalješ npr. zip fajl sa slikama, bolje je da ga upload-uješ na svoj sajt i da im pošalješ link tako da mogu da ga download-uju u njegovoj pravoj veličini. Ako isti fajl šalješ email-om, bespotrebno ga povećavaš da bi obavio transfer kroz email.

Leka:
Zasto je potrebno kodovati sa base64 ako je slika vec u nekom brojevnom zapisu?

Kao što rekoh, slika je BINARNOM formatu, a email u TEKSTUALNOM. Zbog toga je neophodno koristiti base64 encoding da se binarni fajl spakuje kao tekstualni.

Leka:
Kako se slika uopste razlaze na brojeve?

Jednostavno! ...a zavisi od toga da li je slika rasterska (bitmap-a ili bolje rečeno pixmap-a), ili je vektorska. Potraži na web-u više o formatima fajlova. Probaj na http://www.myfileformats.com
 

Back
Top