MIME

MIME (Multipurpose Internet Mail Extension – Shtesa shumë-shërbimëshe e postës së Internetit).

## Çka është MIME?
MIME është përcaktuar që të lejojë transmetimin e të dhënave jo-ACSII përmes e-mail. MIME lejon të dhënat arbitrare të jenë të koduar në ASCII dhe pastaj të transmetohen në një e-mail mesazh standard. Ky është një protokoll shtesë që lejon të dhënat jo-ASCII të dërgohen me anë të SMTP (Simple Mail Transfer Protocol). Megjithëatë, MIME nuk është një postë protokoll dhe nuk mund të zëvendësojë SMTP, por është vetëm një shtesë për SMTP. Në fakt, MIME nuk ka ndryshuar SMTP ose POP3, por as nuk i ka zëvendësuar ato.
Standardi MIME siguron një strukturë të përgjithshme për llojin e përmbajtjes së mesazheve në Internet dhe lejon zgjerimin e kërkesave me lloje të reja të përmbajtjes. Për të akomoduar llojet e të dhënave arbitrare, çdo mesazh MIME përfshinë informacion që i tregon marrësit llojin e të dhënave dhe kodimin e përdorur. Standardi MIME specifikon se lloji i përmbajtjes së deklaratës duhet të përmbajë dy idnetifikues, një lloj dhe nën lloj të përmbajtjes, të ndara me slash (/).

MIME është një standard interneti që zgjeron formatin e email-it që të përkrahë: • Tekstin me karaktere në vend të ASCII-t • Përmbajtjet jo-tekstuale • Mesazhet me përmbajtje shumëpjesëshe • Informatat në header përmes karakterev jo-ASCII. Mime erdhi si pasojë e nevojës së plotësimit të mungesave të cilat i kishte standardi RFC 822. RFC 822 ishte një format i mesazheve tekstuale në internet. Ai kishte të bënte me tekstet që shkëmbenin ndërmjet veti komunikues të ndryshëm që shfrytësonin email-at. Por në përdorimin e tij u paraqiten disa pengesa. RFC 822 nuk i përkrahte mesazhet jo-tekstuale, si p.sh Multimedia mesazhet, ose edhe në rastet shfrytëzuesit për komunikim i nevojitej të fuste informacione vizuele, ose informacione me zë. Përveç këtyre, shfaqej problem madje edhe me tekst. RFC 822 nuk i njihte tekestet që ishin format i ndryshëm nga US-ASCII. Pastaj pasiqë RFC 822 nuk e përkrahte tekstin me karaktere në komunikim paraqitej problem sepse cdo mesazh duhet të konvertohej në ASCII para se të dërgohej. Problemet vazhdoni të shfaqeshin dhe të bëhenin më të mëdha pasiqë portat ishin të dizajnuara që të bënin shkëmbimin e mesazheve ndërmjet portit RFC 822 dhe portit X.400 Ky standard komunikimi specifikonte se edhe pjesët jo-tekstuale të X.400 duhej të konvertoheshin në ASCII, përndryshe do të fshiheshin. Si pasojë e këtyre problemeve erdhi MIME me qëllim që të ofrojë zgjidhje të cilat do të jenë kompatibile me RFC 822. Karakteristikat e MIME që e bëjnë më të lehtë komunikimin 1. MIME-Version Mime -Version është një fushë e cila e pajis mesazhin me një numër të versionit të tij, në bazë të së cilit tregohet se ai është konform me rregullat e komunikimt, dhe lejohet të manipulohet më të. Qëllimi MIME-Version është që ti tregojë shfrytëzuesit se me cfarë versioni është punuar mesazhi,që ta dijë se a është në përputhshmëri me dokumentin. 2. MIME- Content Mime-Content është një fushë e cila përdoret për të treguar tipin(tipi i përgjithshëm i të dhënave) dhe nëntipin(një format i caktuar i tipit të të dhënave) e të dhënave në trupin e mesazhit. Ajo mund të përdoret edhe për të treguar origjinalitetin e të dhënave.

## Si funksionon MIME?
MIME i transformon të dhënat jo-ASCII në faqen e dërguesit në të dhëna NVT ASCII dhe ia jep ato SMTP klientit që ti dërgoj nëpërmes Internetit. SMTP serveri në faqen e marrësit i pranon të dhënat NVT ASCII dhe ia jep ato MIME që ti transformon përsëri në të dhëna origjinale jo-ASCII. Figura e mëposhtme ilustron një sërë funksionesh softuerike që transformojnë të dhënat jo-ASCII në ASCII dhe anasjelltas.

Tipi i të dhënave mund të jetë i këtyre llojeve: 

1. Text që përdoret për të trëguar informata tekstuale të vendosura në një numër karakteresh dhe të shprehura përmes tekstit të standarizuar. Dallahen dy nëntipe të tipit tekst: plain dhe enriched. Plain është nëntip për një tekst të pa formatuar, ndërsa enriched ofron mundësi për formatizim të tekstit. 

2. Multipart që tregon se body ka shumë pjesë të cilat janë të pavarura. Nëntipet e Multipart janë: i. Mixed -pjesë të ndryshme në body kombinohen dhe formojnë një mesazh të vetëm ii. Alternative- Të dhëna të njejta por në formate të ndryshme iii. Parallell- Të dhëna që përdoren njëherazi iv. Digest- Entitete shumëpjesëshe në të cilat çdo pjesë është e tipit mesazh 

3. Application që përdoret për të transmetuar aplikacione ose të dhëna binare, dhe në këtë mënyrë të implementojë një shërbim për transferimin e dokumenteve në mënyrë elektronike. Sikurse edhe tipet tjera edhe ky ka nëntipe: i. Octet-stream-Përdoret kur të dhënat binare nuk interpretohen. Veprimi që duhet ndermarrë është që të ofrojë shkruajtjen e informacionit në një dokument për shfrytëzuesin ii. ODA iii. POSTSCRIPT 

4. Message që përdoret për enkapsulimin e email-it Ky tip i të dhënave është pjesë standard e RFC 822 Nëntipet e këtij tipi janë: i. Rfc 822 ii. Partial- që përdoret në rastin kur body është shumë i madh dhe nuk mund të transportohet në mail. Në këtë rast lejohet të transmetohet pjesë-pjesë iii. External-është një alternativë tjetër në rastin kur body është i madh. Në këtë rast bëhet ruajtja e tij në një burim të jashtëm të të dhënave 

5. Image që përdoret për transmetimin e të dhënave vizuele(fotove). Këtij tipi i duhet një pajisje për ti shfaqur këto të dhëna. Nëntipet e saj janë formatet e fotove : i. JPEG ii. GIF

6. Audio që përdoret për transmetimin e të dhënave me zë. Nevojitet një paisje dalëse për të shfaqur këto të dhëna. Nëntipi saj kryesor është:BASIC 7. Video që përdoret për transmetimin e videove ose fotove lëvizëse(gif) pra kombinim te të dhënave vizuele dhe të dhënave me zë. Këkrohet aftësi softverike dhe hardverike për të shfaqur këto të dhëna. Nëntipi kryesor është : MPEG

MIME- Content Transfer-Encoding MIME- Content Transfer-Encoding është një fushë e cila përdoret për të specifikuar enkodimin që është përdorur në të dhëna me qëllim që të bëhet e mundshmë të kalojë përmes mekanizmave transportuese të cilat mund të kenë seleksionim të të dhënave ose karaktereve, pra nuk pranojnë çfarëdo lloj të të dhënave.Ka raste kur të dhënat të cilat transportohen me mail kanë format natyral 8-bitësh ose janë të dhëna binare. Ka raste kur disa “transfer-protocole” nuk njohin të dhëna tjera përvec 7-bitëshe. Në këtë rast duhet të bëhet enkodimi i këtyre të dhënave në të dhëna 7-bitëshe. Është e nevojshme të dihet mekanizmi me të cilin është kryer ky enkodim. Kjo fushë pra shërben pikërisht për këtë qëllim. Janë dy lloje të Content-Transfer Encoding: The quoted-printabletransfer përdoret kur kemi të dhëna që përbëhen nga okteta të mëdha që i korrespondojnë ASCII karaktereve. Kjo paraqet karakteret të prezentuara nga kodi heksadecimaal i tyre dhe vijat ndarëse që e kufizojnë rreshtin e mesazhit në 76 karaktere. Base64 përdoret për kodimin arbitrar të të dhënave në mënyrë që të jenë të paprekshme nga procesi i transportimit. 4. MIME- Content ID MIME-Content ID është një fushë që përdoret për të gjeneruar një ID për mesazhin.ID-ja duhet të jetë unike. Në disa raste është e nevojshme që një body të ndërveprojë me një tjetër shfrytëzohet Content-ID Shembull : Content-ID := msg-id 5. MIME- Content Description. MIME-Content Description është një fushë që përdoret për të përshkruar të dhënat që gjenden në përmbatjen e mesazhit.

## Referimet
“Internet Security - Cryptographic Principles, Algorithms and Protocols” Man Young Rhee

https://web.archive.org/web/20110914054731/http://www.javvin.com/protocolMIME.html