1 / 27

MIME Multipurpose Internet Mail Extensions RFC 1521

Michał Rajkowski Jan Dudziec. MIME Multipurpose Internet Mail Extensions RFC 1521. Plan prezentacji. Definicja MIME MIME, a inne RFC Format wiadomości Pola nagłówka Typy zawartości Podsumowanie. MIME - Multipurpose Internet Mail Extensions - Standard poczty elektronicznej

howe
Download Presentation

MIME Multipurpose Internet Mail Extensions RFC 1521

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Michał Rajkowski Jan Dudziec MIMEMultipurpose Internet Mail ExtensionsRFC 1521

  2. Plan prezentacji • Definicja MIME • MIME, a inne RFC • Format wiadomości • Pola nagłówka • Typy zawartości • Podsumowanie RFC 1521 - MIME

  3. MIME - Multipurpose Internet Mail Extensions - Standard poczty elektronicznej - Mechanizmy specyfikacji i opisu formatu zawartości wiadomości internetowych RFC 1521 Uzupełnia wcześniejsze publikacje i rozszerza standardy o mechanizmy pozwalające na przesyłanie różnych typów zawartości Definicja MIME RFC 1521 - MIME

  4. RFC 822 – Standard opisujący format wiadomości internetowych (1982r.) Treść: - Protokół reprezentacji wiadomości - Specyfikacja nagłówka - Format i zawartość wiadomości – 7 bitowy kod ASCII Wady: - wiadomości tekstowe – brak formatowania (czcionek itp) - wiadomości nie tekstowe – odrzucane lub konwertowane na ASCII -> utrata informacji Wcześniejsze publikacje (1) RFC 1521 - MIME

  5. RFC 1341 i RFC 1342 – pierwsze publikacje i definicje MIME RFC 1341 - MIME (Multipurpose Internet Mail Extensions): Mechanisms for Specifying and Describingthe Format of Internet MessageBodies RFC 1342 - Representation of Non-ASCII Textin Internet MessageHeaders RFC 1521 zostało wprowadzone, aby zastąpić RFC 1341, RFC 1342. Wcześniejsze publikacje (2) RFC 1521 - MIME

  6. RFC 1521 • RFC 1521 - MIME (Multipurpose Internet Mail Extensions) Part One: Mechanisms for Specifying and Describing the Format of Internet Message Bodies • Zmiana formatu wiadomości • Opis mechanizmów pozwalających na przesyłanie obiektów różnego typu bez straty informacji • Zawartość specyfikacji: • Version Header Field • Content-Type Header Field • Content-Transfer-Encoding Header Field • Additional Content-Header Fields • Content-ID Header Field • Content-Description Header Field RFC 1521 - MIME

  7. HEADER{ Format wiadomości MIME-version: 1.0 Content-type: multipart/mixed; boundary="frontier" This is a multi-part message in MIME format. --frontier Content-type: text/plain --frontier Content-type: application/octet-stream Content-transfer-encoding: base64 Pgh0bWw+CiAgPGhlYWQ+CiAgPC9oZWF kPgogIDxib2R5PgogICAgPHA+VGhpcyBpc yB0aGugYm9keSBvZiB0aGUgbWVzc2FnZ S48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg= --frontier-- BODYPART Bodypart header { Bodypart header { Body { RFC 1521 - MIME

  8. MIME-Version Header Field • Nowe pole nagłówka • Określa numer wersji formatu zawartości wiadomości • Wartość dla standardu zgodnego z RFC1521: • Ogólna postać: • MIME-Version: 1.0 version := "MIME-Version" ":" 1*DIGIT "." 1*DIGIT RFC 1521 - MIME

  9. Content-TypeHeader Field content := "Content-Type" ":" type "/" subtype *(";" parameter) type := "application" / "audio" / "image" / "message"/ "multipart" / "text" / "video" / extension-token extension-token := x-token / iana-token iana-token := <publiczny i zarejestrowany w IANA> x-token := < "X" -token or "x" -token> subtype := token parameter := attribute "=" value attribute := token value := token token := 1*<any (ASCII) CHAR except SPACE, CTLs, or tspecials> tspecials := "(" / ")" / "<" / ">" / "@" "," / ";" / ":" / "\" “<">"/" / "[" / "]" / "?" / "=" • Pole zdefiniowane po raz pierwszy w RFC 1049 • Określa typ danych zawartych w ciele wiadomości • Jest zbiorem parametrów • Parametry obowiązkowe:TYP i PODTYP • Typ- rodzaj zawartości: text,multipart,application, message, audio,video, image, experimental • Podtyp- np. format • Przykład: “image/jpg” RFC 1521 - MIME

  10. Content-Transfer-EncodingHeader Field encoding := "Content-Transfer-Encoding" ":"mechanism • Nowo zdefiniowane pole • Wskazuje typ transformacji ciała wiadomości użyty na potrzeby transportu wiadomości • Domyślna wartość - “7bit” • Część nagłówka wiadomości i nagłówka ciała wiadomości mechanism := "7bit" "quoted-printable" "base64" "8bit" "binary" x-token Przykład: Content-Type: text/plain; charset=ISO-8859-1 Content-transfer-encoding: base64 RFC 1521 - MIME

  11. “7bit”,”8bit”,”binary” => brak kodowania Content-Transfer-EncodingHeader Field Quoted-printable • Standardowo do przesyłania tekstu • Drukowalne znaki ASCII • Znaki o kodach >127-> 3 znaki • Przykład: • Ó - 243 (ISO-8859-2) => “=F3” Base64 • stosowany głownie do plików binarnych (grafika, dźwięk) • możliwy do zastosowania także dla zwykłego tekstu RFC 1521 - MIME

  12. Content-Transfer-EncodingHeader Field The Base64 Alphabet RFC 1521 - MIME

  13. Additonal Content-Header Fields • Optional Content-ID Header Field • Etykieta zawartości • Analogiczne wykorzystanie jak “Message-ID” • Obowiązkowy dla typu “message/external-body” • Optional Content-Description Header Field • Opisowe informacje • Standardowo w postaci US-ASCII, RFC-1522 posiada mechanizm pozwalający na korzystanie z innego kodowania niż US-ASCII • Przykład: Description := “Content-Description “:” *text RFC 1521 - MIME

  14. Typy zawartosći • Text • Multipart • Message • Application • Image • Audio • Video • Experimental RFC 1521 - MIME

  15. TEXT • Zasadniczo do przesyłania zawartości tekstowej • CHARSET - krytyczny parametr używany do zdefiniowania podtypów • Domyślnie - “text/plain;charset=us-ascii” • Zdefiniowane wartości charset: US-ASCII, ISO-8859-X Przykład: text-type := "text" "/" text-subtype [";" "charset" "=" charset] text-subtype := "plain" charset := "us-ascii"/ "iso-8859-1"/ "iso-8859-2"/ "iso-8859-3" / "iso-8859-4"/ "iso-8859-5"/ "iso-8859-6"/ "iso-8859-7" / "iso-8859-8" / "iso-8859-9" RFC 1521 - MIME

  16. MULTIPART • Umożliwia przesyłanie kilku różnych typów danych w 1 wiadomości • Każda część to osobne “bodypart” z osobnym nagłówkiem • Enkapsulacja- każda część oddzielona granicami boundary := 0*69<bchars> bcharsnospace • W przypadku wystapienia średnika „:” - • Dozwolone kodowania- “7bit”, “8bit”, “binary” • Podtyp: “mixed” (podstawowy),“alternative”, “digest”, ”parallel” Content-Type: multipart/mixed; boundary=gc0p4Jq0M2Yt08jU534c0p RFC 1521 - MIME

  17. MULTIPART-przykład From: Nathaniel Borenstein <nsb@bellcore.com> To: Ned Freed <ned@innosoft.com> Subject: Formatted text mail MIME-Version: 1.0 Content-Type: multipart/alternative; boundary=boundary42 --boundary42 Content-Type: text/plain; charset=us-ascii ---TEKST niesformatowany---- --boundary42 Content-Type: text/richtext ---TEKST w fromacie richtext--- --boundary42 Content-Type: text/x-whatever --Oryginalna postać tekstu---- --boundary42-- RFC 1521 - MIME

  18. MESSAGE • Dołączenie innej wiadomości • Możliwe podtypy: “rfc822”, “partial” , “external-body” • Wymaga kodowania “7bit”, “8bit”,”binary” • Message header: us-ascii (zawsze) • Partial – umożwilia przesyłanie duży obiektów podzielonych na części (łączenie po “content-id”) • External-body-obowiązkowy parametr “acces-type”Parametry opcjonalne:“expiration”, “size”,”permission”, “name”,”site”, “directory”,”mode”, “server”,”subject” RFC 1521 - MIME

  19. MESSGE-przykład 1 X-Weird-Header-1: Foo From: Bill@host.com To: joe@otherhost.com Subject: Audio mail Message-ID: <id1@host.com> MIME-Version: 1.0 Content-type: message/partial; id="ABC@host.com"; number=1; total=2 X-Weird-Header-1: Bar X-Weird-Header-2: Hello Message-ID: <anotherid@foo.com> MIME-Version: 1.0 Content-type: audio/basic Content-transfer-encoding: base64 From: Bill@host.com To: joe@otherhost.com Subject: Audio mail MIME-Version: 1.0 Message-ID: <id2@host.com> Content-type: message/partial; id="ABC@host.com"; number=2; total=2 RFC 1521 - MIME

  20. Message-przykład 2 From: Whomever To: Someone Subject: whatever MIME-Version: 1.0 Message-ID: <id1@host.com> Content-Type: multipart/alternative; boundary=42 Content-ID: <id001@guppylake.bellcore.com> --42 Content-Type: message/external-body; name="BodyFormats.ps"; site="thumper.bellcore.com"; access-type=ANON-FTP; directory="pub"; mode="image"; expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)" Content-type: application/postscript Content-ID: <id42@guppylake.bellcore.com> --42 Content-Type: message/external-body; access-type=mail-server server="listserv@bogus.bitnet"; expiration="Fri, 14 Jun 1991 19:13:14 -0400 (EDT)" Content-type: application/postscript Content-ID: <id42@guppylake.bellcore.com> get RFC-MIME.DOC --42-- RFC 1521 - MIME

  21. APPLICATION • Przesyłanie danych nie zakwalifikowanych do pozostałych kategorii • Przetwarzanie zawartosci przed pokazaniem jej uzytkownikowi • Podtypy: “octet-stream”(dane binarne), “Postscript”(program napisany w jezyku Postscript/Postscript2 – Adobe Systems Inc.) • “octet-stream” - parametry: “type”, “padding” • Kolejne typy mają być zdefiniowane w przyszłości RFC 1521 - MIME

  22. IMAGE, AUDIO, VIDEO IMAGE • Do przesyłania obrazów • Podtyp- format obrazu: “jpeg”, “gif” itp. AUDIO • Do przesyłania obrazów • Podstawowy podtyp “basic”- kodowanie 8 bitowe [PCM] VIDEO • Do przesyłania plików video (dopuszczalnie z dźwiękiem) • Podtyp- format video: “mpeg” RFC 1521 - MIME

  23. EXPERIMENTAL • Eksperymentalne podtypy • Zaczynają się na “X-” • Formaty bez jednoznacznej i publicznej definicji • Prywatne wartości • Odradza się tworzenie nowych typów – powinno się stosować rozszerzanie już istniejących RFC 1521 - MIME

  24. Zasady korzystania z MIME Agent pocztowy używający MIME musi: • Zawsze tworzyć pole “"MIME-Version: 1.0"” • Rozpoznawać “Content-Transfer-Encoding” i przeprowadzić odpowiednie dekodowanie • Rozpoznawać i odpowiednio prezentować dane inne niż “text” • “Text”- wyświetlać za pomocą US-ASCII, jak nie zna podtypu to prezentować nieprzetworzone dane, rozpoznawać “charset”, rozpoznawać “ISO-8859-X” • “Message”- rozpoznawać podtyp “822” • “Multipart”- rozpoznawać podtyp “mixed” i “alternative” • “Application”- rozpoznawać podtyp i umieszczać zawartość w pliku RFC 1521 - MIME

  25. Podsumanie • MIME jest powszechnie stosowanym standardem do przesyłania i przetwarzania wiadomości • RFC 1521 jest pierwszym i podstawowym dokumentem opisującym przesyłanie różnych typów wiadomości • Dalsze wersje: • RFC 2045- Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies • RFC 2046-Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types • RFC 2047- MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text • RFC 2048-Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures • RFC 2049-Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples RFC 1521 - MIME

  26. Pytania na kolokwium • W przypadku stosowania Quoted-printable, co się dzieje gdy mamy znak o wartości większej od 127 • Nie jest on przesyłany • Jest kodowany za pomocą 3 znaków • Ani a), ani b) • Co jest typem podstawowym dla Multipart? • Parallel • Mixed • Digest • Czy możemy ustawić (dla typu zawartości Message) message header inny niż us-ascii? • Tak, jeżeli użyjemy kodowania 7 bit • Tak, jeżeli użyjemy kodowania 8bit lub binary • Ani a), ani b) RFC 1521 - MIME

  27. Dziękujemy za uwagę. RFC 1521 - MIME

More Related