email.encoders: 인코더

소스 코드: Lib/email/encoders.py


이 모듈은 레거시(Compat32) 이메일 API의 일부입니다. 새로운 API에서 기능은 set_content() 메서드의 cte 매개 변수에 의해 제공됩니다.

This module is deprecated in Python 3. The functions provided here should not be called explicitly since the MIMEText class sets the content type and CTE header using the _subtype and _charset values passed during the instaniation of that class.

이 섹션의 나머지 텍스트는 모듈의 원본 설명서입니다.

Message 객체를 처음부터 만들 때, 종종 호환 메일 서버를 통한 전송을 위해 페이 로드를 인코딩해야 합니다. 바이너리 데이터가 포함된 image/*text/* 유형 메시지의 경우 특히 그렇습니다.

email 패키지는 encoders 모듈에서 편리한 인코더를 제공합니다. 이 인코더는 실제로 MIMEAudioMIMEImage 클래스 생성자가 기본 인코딩을 제공하는 데 사용됩니다. 모든 인코더 함수는 정확히 하나의 인자, 인코딩할 메시지 객체를 취합니다. 일반적으로 페이 로드를 추출하여, 인코딩한 다음, 페이 로드를 새로 인코딩된 값으로 재설정합니다. 또한 Content-Transfer-Encoding 헤더를 적절하게 설정합니다.

이러한 함수는 멀티 파트 메시지에는 의미가 없음에 유의하십시오. 대신 개별 서브 파트에 적용해야 하며, 유형이 멀티 파트인 메시지를 전달하면 TypeError가 발생합니다.

제공되는 인코딩 함수는 다음과 같습니다:

email.encoders.encode_quopri(msg)

페이 로드를 인용 quoted-printable 형식으로 인코딩하고 Content-Transfer-Encoding 헤더를 quoted-printable로 설정합니다 1. 이것은 대부분의 페이 로드가 인쇄 가능한 일반 데이터이지만, 인쇄할 수 없는 문자가 몇 개 있을 때 사용하기에 적합한 인코딩입니다.

email.encoders.encode_base64(msg)

페이 로드를 base64 형식으로 인코딩하고 Content-Transfer-Encoding 헤더를 base64로 설정합니다. 이것은 페이 로드가 대부분 인쇄할 수 없는 데이터일 때 사용하기에 좋은 인코딩입니다. quoted-printable보다 더 압축된 형식이기 때문입니다. base64 인코딩의 단점은 텍스트를 사람이 읽을 수 없도록 만든다는 것입니다.

email.encoders.encode_7or8bit(msg)

이것은 실제로 메시지의 페이 로드를 수정하지는 않지만, 페이 로드 데이터를 기반으로, Content-Transfer-Encoding 헤더를 적절하게 7bit8bit로 설정합니다.

email.encoders.encode_noop(msg)

이것은 아무것도 하지 않습니다. 심지어 Content-Transfer-Encoding 헤더도 설정하지 않습니다.

각주

1

encode_quopri()로 인코딩하면 데이터의 모든 탭과 공백 문자도 인코딩됨에 유의하십시오.