MIME이란 "Multi-purpose Internet Mail Extentions"의 약자인데 문장 자체가 의미하듯 다양한 목적을 위한 인터넷 메일의 확장 규격입니다. MIME는 7비트/ascii 문자만을 위한 인터넷 메일 표준 규약의 문제점을 해결하기 제안되었습니다. 8비트 문자와 다양한 바이너리 파일을 이메일을 통해 올바르게 처리하려면 이 규약을 잘 지켜야 합니다. MIME은 메시지를 안전하게 전송하기 위해 메시지와 관련된 여러 가지 사항을 정의하고 있습니다. MIME에서 규정하고 있는 전송 데이터 타입은 아래와 같습니다.
-
text
특정 문자셋(Charset)으로 구성된 텍스트 정보나, 포스트스크립트 같은 formatted text 정보 전송에 사용 -
multipart
서로 다른 타입의 데이터를 갖는 여러 "body" 를 하나의 메시지로 조합하여 전송 -
application
application 데이터나 binary 데이터 전송 -
message
다른 전자 우편의 내용을 인캡슐레이션하여 전송 -
image
still image 데이터의 전송 -
audio
audio 데이터의 전송 -
video
video 데이터의 전송 (audio 를 부분으로 가질 수 있다)
MIME은 전송 데이터에 관한 정보를 표시하기 위해 여러 가지 헤더를 가집니다. 이 헤더는 데이터에 대한 정보임과 동시에 데이터의 안전성을 보장하기 위한 보증수표와 같은 것입니다. 헤더의 정확한 정보를 통해 데이터의 손실없이 전세계 어디로 움직이는 데이터라도 원형을 유지할 수 있습니다.
-
MIME-Version:
전송 데이터가 따르고 있는 MIME 의 버전을 나타냅니다. -
Content-Type:
전송 데이터의 형식과 세부형식을 표시합니다. 위에서 열거한 일곱 가지가 형식이 가능하며, 각 형식은 나름의 세부형식을 가지게 됩니다. 즉, text 는 세부형식으로 plain과 richtext 등을 가집니다. -
Content-Transfer-Encoding:
전송 데이터의 본문을 인코딩한 방법을 표시합니다.
///////////////////////////////////////////////////////////////////////////////////////
MIME에서 사용하는 인코딩
MIME 표준에서 권장하는 인코딩 방법은 다음과 같습니다. 이곳에 uuencode가 없음을 주목하십시오. uuencode는 유닉스 환경에서 오래전부터 사용되는 고전적 인코딩 방법이며 현재도 많이 사용되고 있습니다. 그러나, 앞으로 uuencode를 사용하여 데이터를 송수신하지 말아야 합니다. 더 이상 uuencode로 인코딩된 데이터에 대해 누구도 안전한 전달을 보장하지 못합니다. 인터넷을 통해 안전한 데이터의 송수신을 보장받으려면 MIME 규약을 지켜야 합니다. 현재 MIME을 지원하는 응용 프로그램에서 주로 사용 되는 것은 7 bit, 8 bit, base64, QP 이고 나머지 두 방식은 거의 사용되지 않습니다. 아웃룩 익스프레스또한 4가지 인코딩 방식만 지원합니다.
-
7 bit
디폴트 인코딩 방법으로, 전송 데이터의 본문은 미리 7bit로 되어 있어야 하며, 전송 데이터에 대해 실제 인코딩은 하지 않고, 단지 데이터가 7 bit mail-ready representation으로 되어 있다는 것만 나타냅니다. -
8 bit
전송 데이터가 8bit, 즉, ASCII 문자뿐만 아니라, non-ASCII 문자를 포함하고 있음을 나타내고, 역시 실제 데이터에 대한 인코딩은 하지 않습니다. -
binary
SMTP에서는 한 라인에 1,000 문자를 넘지 못하도록 규정하고 있는데, 7bit와 8bit는 이를 따르지만, binary 는 길이에 제약이 없고, 역시 실제 데이터에 대한 인코딩은 하지 않습니다. -
Base64
24bit(3byte)를 입력 받아서, 이를 6bit 씩 잘라 4byte를 출력하는 인코딩 방법입니다. ISO646 모든 버젼과 EBCIDIC 모든 버젼의 문자셋과 알파벳을 똑같이 표현할 수 있습니다. Base64 인코딩은 Base64에서 정하는 딜리미터 (SPACE, TAB, CRLF 등)에 의해 구분되는 단위에 따라 하게 됩니다. 이를 encoded-word라고 하는데 encoded-word는 "=?charset?encoding?encoded-text?=" 로 표현되며, 문자셋은 인코딩의 대상이 되는 데이터의 문자셋을 나타냅니다. -
QP(Quoted-Printable)
MSB가 1 인 문자를 "0123456789ABCDEF" 를 사용해서 "=" 다음에 부호값에 해당하는 십육진수가 오는 형태로 인코딩하고, 부호값이 33에서 60, 62 에서 126까지인 문자는 ASCII 문자로 나타내고, 9에서 32까지의 부호값을 가지는 문자는 MSB가 1 인 문자와 같은 방식으로 인코딩합니다. 이 방식으로 인코드된 데이터는 한 라인에 76 글자를 넘을 수 없습니다. -
x-token
이 방식은 사용자가 정의한 코드를 사용할 수 있도록 고려한 것으로, "x-" 뒤에 사용자가 정의한 코드의 이름을 넣어 사용할 수 있습니다.

댓글을 달아 주세요