> email | 가독성 | mime <

// 특수 문자와 유니코드 문자가 포함된 이메일 본문을 MIME Quoted-Printable 형식으로 안전하게 인코딩

[READABLE]

사람이 읽기 쉬운 형식

ASCII 영역은 평문으로 유지되어, 원본 소스를 직접 보더라도 내용 파악이 쉽습니다.

[EMAIL]

MIME 이메일 표준

7비트 기반 이메일 시스템에서 한글과 각종 유니코드 문자를 안전하게 전송하기 위해 널리 사용되는 MIME Content-Transfer-Encoding 형식입니다.

[UNICODE]

유니코드 지원

UTF-8 기반 메일에서도 유니코드 문자를 안전하게 인코딩하며, 기존 메일 서버/클라이언트와의 호환성을 유지합니다.

>> 기술 정보

Quoted-Printable 동작 방식:

Quoted-Printable은 8비트 데이터를 출력 가능한 ASCII 문자만 사용해 표현합니다. 비 ASCII 바이트는 '=' 뒤에 두 자리 16진수 코드로 기록되며, 한 줄 길이는 보통 76자로 제한되고 필요한 경우 소프트 라인 브레이크가 사용됩니다.

예시:

"Café" → Caf=C3=A9

Quoted-Printable을 사용할 때:

  • >텍스트 위주의 이메일 본문에서 가독성을 유지하고 싶을 때
  • >한글/유럽어 등 국제 문자가 섞여 있지만, 소스를 그대로 읽을 수 있기를 원할 때
  • >Base64 만큼의 압축률이 필요 없고, 디버깅과 로그 분석이 중요할 때
  • >행 길이 제한과 7비트 제약이 있는 오래된 SMTP/MTA 환경과 연동할 때
  • >메일 소스를 직접 확인하며 문제를 추적해야 하는 운영 환경에서

>> 자주 묻는 질문

Quoted-Printable이란 무엇인가요?

Quoted-Printable은 7비트만 허용하는 이메일 시스템에서 8비트 데이터를 전송하기 위해 설계된 MIME Content-Transfer-Encoding 방식으로, 비 ASCII 바이트를 =XX 형식의 코드로 치환합니다.

언제 Quoted-Printable을 사용하는 것이 좋나요?

본문 대부분이 평문 텍스트이고 일부에만 한글이나 특수 문자가 있는 이메일에서, 원본을 직접 봐도 이해할 수 있는 형태로 유지하고 싶을 때 적합합니다.

Base64와의 차이점은 무엇인가요?

Base64는 전체 내용을 인코딩해 소스가 완전히 난독화되는 반면, Quoted-Printable은 ASCII 텍스트를 그대로 두고 특수 문자만 인코딩하므로 텍스트 위주의 메일에는 더 읽기 좋습니다.

Quoted-Printable에서 '=' 문자는 어떤 의미인가요?

"=" 문자는 이스케이프 역할을 하며, 뒤따르는 두 자리 16진수는 1바이트를 나타냅니다. 줄 끝의 "="는 논리적인 줄이 다음 줄로 이어진다는 소프트 라인 브레이크를 의미합니다.

// 빠른 참조

InputOutputNote
==3D= is the escape char
é (UTF-8 C3 A9)=C3=A9each byte of a multi-byte char
space/tab at end of line=20 / =09trailing whitespace
= at end of line(soft line break)joins lines, max 76 chars/line
A–Z a–z 0–9 ! * + - / etc.as isprintable ASCII 33–126 (except =)

// 코드 예제

Input     Café = 3 € (UTF-8)
Output    Caf=C3=A9 =3D 3 =E2=82=AC
Rules     RFC 2045 section 6.7
          * bytes 33..126 except '=' may stay literal
          * everything else -> '=' + two uppercase hex digits
          * encoded lines must not exceed 76 characters
          * a line ending in '=' is a soft break (no newline in the decoded data)
MIME      Content-Transfer-Encoding: quoted-printable

>> 더 많은 질문

Q: Quoted-Printable은 무엇에 쓰나요?

A: 대부분 ASCII이면서 일부 특수 문자가 섞인 이메일 본문(MIME)에 씁니다. 텍스트는 읽을 수 있는 채로 두고 나머지 바이트만 =XX로 부호화합니다. 헤더는 Content-Transfer-Encoding: quoted-printable입니다.

Q: 소프트 줄바꿈이란?

A: 줄 끝의 “=”입니다. 긴 줄을 최대 76자로 나누면서도 복호 시 줄바꿈이 생기지 않고 줄이 다시 이어집니다.

Q: Quoted-Printable과 Base64 중 무엇이 좋은가요?

A: 라틴 문자 위주 텍스트에는 QP가 오버헤드가 작고 읽기 쉽습니다. 바이너리나 비ASCII 문자에는 Base64가 낫고 고정 약 33%가 늘어납니다. QP는 최악의 경우 바이트당 3문자가 필요합니다.

다른 언어