다목적 인터넷 메일 확장 프로토콜

MIME 헤더 이해하기

MIME 헤더는 프로토콜에 대한 정보를 포함합니다.

MIME-Version

이는 메시지가 MIME 형식임을 나타냅니다. 형태는 다음과 같습니다:

MIME-Version: 1.0

Content-Type

이것은 메시지의 콘텐츠 유형을 유형-서브타입 쌍으로 나타냅니다(예: text/plain, text/html). 멀티파트 콘텐츠 유형은 텍스트, HTML, 첨부 파일, 이미지, 오디오, 비디오 등을 포함할 수 있습니다.

Content-Type: multipart

Content-Transfer-Encoding

content-type에 지정된 인코딩 위에 바이너리-텍스트 인코딩 스킴이 사용되는지를 나타냅니다. 사용한다면 어떤 것인지를 명시합니다. 여기서 7-bit, 8-bit, binary 코딩 타입을 지정할 수 있습니다.

Encoded-Word

SMTP 메시지 헤더는 일반적으로 ASCII 문자를 사용합니다. 비 ASCII 문자는 리터럴 문자열 대신 MIME 인코딩된 워드 구문을 사용해야 합니다. 형식은 다음과 같습니다:

"=? charset ? encoding ? encoded text ?=".

멀티파트 메시지

MIME 멀티파트 메시지는 content-type 헤더에 경계(boundary)를 포함합니다. 이 경계는 어느 파트에도 나타나서는 안 되며, 파트 사이와 메시지 본문의 시작 및 끝에 다음과 같이 배치됩니다:

MIME-version: 1.0


 Content-type: multipart/mixed; boundary="frontier"

This is a multi-part message in MIME format.

--frontier

Content-type: text/plain

This is the body of the message.

--frontier

Content-type: application/octet-stream

Content-transfer-encoding: base64

PGh0bWw+CiAgPGhlYWQ+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPHA+VGhpcyBpcyB0aGUg

Ym9keSBvZiB0aGUgbWVzc2FnZS48L3A+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==

--frontier--

각 파트는 자체 콘텐츠 헤더와 본문으로 구성됩니다.

멀티파트 서브타입

MIME 표준은 다양한 multipart-message 서브타입을 정의합니다. 서브타입은 전체 메시지의 "Content-Type" 헤더에 지정됩니다.

다음은 가장 일반적으로 사용되는 서브타입 목록입니다.

  • Mixed: Multipart/mixed는 서로 다른 "Content-Type" 헤더를 가진 파일들을 인라인으로 전송할 때 사용됩니다. 그림이나 다른 쉽게 읽을 수 있는 파일을 전송하면 대부분의 메일 클라이언트가 인라인으로 표시합니다.
  • Message: 메시지 파트는 이메일 메시지를 포함합니다.
  • Digest: 다이제스트는 여러 텍스트 메시지를 전송하는 간단한 방법입니다. 각 파트의 기본 content-type은 "message/rfc822"입니다.
  • Alternative: 대안 서브타입은 각 파트가 동일(또는 유사)한 콘텐츠의 "대안" 버전이며, 각각 "Content-Type" 헤더에 의해 다른 형식으로 표시된다는 것을 나타냅니다.

가장 일반적으로 multipart/alternative는 두 파트(플레인 텍스트(text/plain)와 HTML(text/html))를 가진 이메일에 사용됩니다. 플레인 텍스트 파트는 호환성을 제공하고, HTML 파트는 서식 및 하이퍼링크 사용을 가능하게 합니다. 대부분의 이메일 클라이언트는 플레인 텍스트를 HTML보다 선호하도록 옵션을 제공하는데, 이는 로컬 환경이 애플리케이션이 메시지의 "최선" 파트를 선택하는 방식에 영향을 줄 수 있는 예시입니다.