MIME to standard rozszerzający format wiadomości o załączniki, znaki narodowe i treści wieloczęściowe.
Do czego służy MIME w wiadomościach internetowych
MIME, czyli Multipurpose Internet Mail Extensions, to zestaw standardów opisujących sposób umieszczania różnych rodzajów treści w wiadomościach internetowych. Jego podstawowe zasady określają dokumenty RFC 2045, RFC 2046, RFC 2047, RFC 2048 i RFC 2049. Dzięki MIME wiadomość może zawierać nie tylko zwykły tekst ASCII, lecz także tekst zapisany znakami narodowymi, obrazy, dokumenty, pliki dźwiękowe oraz kilka części o różnym formacie. Sam MIME nie jest programem ani osobnym protokołem transportowym. Określa strukturę danych przekazywanych między programami pocztowymi, natomiast dostarczeniem wiadomości zajmują się protokoły takie jak SMTP, a jej pobieraniem między innymi POP3 lub IMAP.
Informacje MIME znajdują się w nagłówkach wiadomości oraz w jej treści. Najważniejszy nagłówek Content-Type wskazuje typ danych, na przykład text/plain, text/html albo image/jpeg. Dla tekstu można podać parametr charset, który informuje odbiorcę o użytym kodowaniu znaków, na przykład charset=UTF-8. Prawidłowe rozpoznanie tego parametru pozwala klientowi pocztowemu wyświetlić polskie litery bez zastępowania ich znakami zapytania lub nieczytelnymi symbolami.
Typy treści, kodowanie i nagłówki MIME
Typ MIME składa się z typu głównego i podtypu rozdzielonych ukośnikiem. Przykładowo application/pdf opisuje dokument PDF, application/zip archiwum ZIP, a text/csv dane tekstowe w formacie CSV. Dodatkowe parametry mogą doprecyzowywać sposób interpretacji danych. Nagłówek Content-Disposition, zdefiniowany w RFC 2183, może określać, czy element ma być wyświetlony w treści wiadomości, czy potraktowany jako załącznik. Wartość attachment jest zwykle używana przy plikach przeznaczonych do zapisania, natomiast inline wskazuje zawartość możliwą do pokazania bezpośrednio w wiadomości.
Nagłówek Content-Transfer-Encoding opisuje sposób zapisania danych w ramach ograniczeń transportu pocztowego. Kodowanie base64 zamienia dane binarne na tekstowy zapis wykorzystujący 64 znaki alfabetu, dlatego jest często stosowane dla zdjęć i dokumentów. quoted-printable jest przeznaczone głównie dla tekstu, w którym większość znaków pozostaje czytelna, a wybrane bajty są zapisywane jako sekwencje w postaci =XX, gdzie XX oznacza wartość szesnastkową. Inne deklarowane wartości, takie jak 7bit, 8bit i binary, informują o charakterze danych i wymaganiach dotyczących ich transportu. Kodowanie transferowe nie zmienia znaczenia pliku; odbiorca powinien je odtworzyć przed otwarciem danych.
Multipart i odtwarzanie załączników przez program pocztowy
Wiadomość zawierająca kilka elementów korzysta z typu multipart. Przykład multipart/mixed pozwala połączyć tekst wiadomości z załącznikiem. multipart/alternative służy do przekazania tej samej informacji w kilku wersjach, najczęściej jako text/plain oraz text/html. Klient pocztowy może wtedy wybrać wersję najlepiej obsługiwaną przez odbiorcę. Z kolei multipart/related jest używany przy treści HTML powiązanej z dodatkowymi zasobami, na przykład obrazami osadzonymi w wiadomości.
Każdy komunikat multipart zawiera parametr boundary, czyli ciąg znaków wyznaczający granice poszczególnych części. W treści wiadomości pojawiają się linie rozpoczynające się od dwóch myślników i wartości granicy, a zakończenie całej konstrukcji oznacza się dodatkową parą myślników. Program pocztowy analizuje nagłówki każdej części osobno, rozpoznaje jej typ, kodowanie i ewentualną nazwę pliku, a następnie składa wiadomość w postaci widocznej dla użytkownika. Błąd w granicy, brakującym nagłówku albo dekodowaniu base64 może spowodować wyświetlenie surowej treści, pustego załącznika lub komunikatu o uszkodzonym pliku.
MIME w przeglądarkach, załącznikach i serwisie komputerowym
Typy MIME są używane również poza pocztą elektroniczną. Serwer WWW przekazuje je w nagłówku HTTP Content-Type, dzięki czemu przeglądarka wie, czy odebraną zawartość ma potraktować jako stronę HTML, arkusz stylów CSS, skrypt JavaScript, obraz lub dokument. Rozszerzenie nazwy pliku i typ MIME nie są tym samym: rozszerzenie jest częścią nazwy zapisywanej lokalnie, a typ MIME jest informacją przekazywaną w strukturze komunikatu. Przy diagnozowaniu problemu z pobieraniem pliku sprawdza się więc zarówno rozszerzenie, rzeczywisty format danych, jak i nagłówki odpowiedzi HTTP. Nieprawidłowe oznaczenie może spowodować wyświetlenie pliku jako tekstu albo wymusić jego pobranie zamiast otwarcia w przeglądarce.
W praktyce serwisowej analiza MIME pomaga ustalić, czy problem wynika z programu pocztowego, uszkodzonego załącznika, błędnego kodowania znaków, niewłaściwego typu pliku lub niepoprawnej odpowiedzi serwera WWW. Warszawskie Pogotowie Komputerowe zajmuje się profesjonalną naprawą laptopów, komputerów PC i ich podzespołów, a przy problemach z oprogramowaniem można również zweryfikować ustawienia klientów pocztowych, skojarzenia typów plików oraz zachowanie przeglądarki. Sama zmiana rozszerzenia pliku nie naprawia danych, jeśli ich zawartość została uszkodzona albo błędnie zdekodowana; poprawna diagnostyka wymaga porównania nagłówków MIME z rzeczywistym formatem pliku.