email.mime
: 처음부터 이메일과 MIME 객체 만들기¶
소스 코드: Lib/email/mime/
이 모듈은 레거시 (Compat32
) 이메일 API의 일부입니다. 새로운 API에서는 기능이 contentmanager
로 부분적으로 대체되지만, 특정 응용 프로그램에서는 이 클래스들이 레거시 코드가 아닌 곳에서도 여전히 유용할 수 있습니다.
일반적으로, 파일이나 일부 텍스트를, 텍스트를 구문 분석하고 루트 메시지 객체를 반환하는 구문 분석기에 전달하여 메시지 객체 구조를 얻습니다. 그러나 처음부터 완전한 메시지 구조를 만들거나, 개별 Message
객체를 직접 만들 수도 있습니다. 실제로, 기존 구조를 가져와서 새로운 Message
객체를 추가하거나 이동시킬 수도 있습니다. 이렇게 하면 MIME 메시지를 잘게 자르고 재배치하는 매우 편리한 인터페이스가 만들어집니다.
Message
인스턴스를 만들고 첨부 파일과 모든 적절한 헤더를 수동으로 추가하여 새 객체 구조를 만들 수 있습니다. 그러나 MIME 메시지의 경우, email
패키지는 작업을 쉽게 하기 위해 편리한 서브 클래스를 제공합니다.
클래스는 다음과 같습니다:
- class email.mime.base.MIMEBase(_maintype, _subtype, *, policy=compat32, **_params)¶
모듈:
email.mime.base
이것은
Message
의 모든 MIME 특정 서브 클래스의 베이스 클래스입니다. 일반적으로, 할 수는 있지만,MIMEBase
의 인스턴스를 만들지는 않습니다.MIMEBase
는 주로 더 구체적인 MIME 인식 서브 클래스를 위한 편리한 베이스 클래스로 제공됩니다._maintype은 Content-Type 주 유형(예를 들어 text나 image)이고, _subtype은 Content-Type 부 유형(예를 들어 plain이나 gif)입니다. _params는 매개 변수 키/값 딕셔너리이며
Message.add_header
로 직접 전달됩니다.policy가 지정되면 (기본값은
compat32
정책입니다),Message
로 전달됩니다.MIMEBase
클래스는 항상 (_maintype, _subtype 및 _params에 기반하는) Content-Type 헤더와 (항상1.0
으로 설정되는) MIME-Version 헤더를 추가합니다.버전 3.6에서 변경: policy 키워드 전용 매개 변수를 추가했습니다.
- class email.mime.nonmultipart.MIMENonMultipart¶
-
MIMEBase
의 서브 클래스, multipart 가 아닌 MIME 메시지의 중간 베이스 클래스입니다. 이 클래스의 기본 목적은 multipart 메시지에만 적합한attach()
메서드 사용을 방지하는 것입니다.attach()
가 호출되면MultipartConversionError
예외가 발생합니다.
- class email.mime.multipart.MIMEMultipart(_subtype='mixed', boundary=None, _subparts=None, *, policy=compat32, **_params)¶
-
MIMEBase
의 서브 클래스, multipart 인 MIME 메시지의 중간 베이스 클래스입니다. 선택적 _subtype의 기본값은 mixed이지만, 메시지의 부 유형을 지정하는 데 사용할 수 있습니다. multipart/_subtype의 Content-Type 헤더가 메시지 객체에 추가됩니다. MIME-Version 헤더도 추가됩니다.선택적 boundary는 멀티 파트 경계 문자열입니다.
None
(기본값)이면, 경계는 필요할 때 (예를 들어 메시지가 직렬화될 때) 계산됩니다._subparts는 페이 로드의 초기 서브 파트 시퀀스입니다. 이 시퀀스를 리스트로 변환할 수 있어야 합니다.
Message.attach
메서드를 사용하여 항상 메시지에 새 서브 파트를 첨부할 수 있습니다.선택적 policy 인자의 기본값은
compat32
입니다.Content-Type 헤더에 대한 추가 매개 변수는 키워드 인자에서 취하거나, 키워드 딕셔너리인 _params 인자로 전달됩니다.
버전 3.6에서 변경: policy 키워드 전용 매개 변수를 추가했습니다.
- class email.mime.application.MIMEApplication(_data, _subtype='octet-stream', _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶
-
A subclass of
MIMENonMultipart
, theMIMEApplication
class is used to represent MIME message objects of major type application. _data contains the bytes for the raw application data. Optional _subtype specifies the MIME subtype and defaults to octet-stream.선택적 _encoder는 전송을 위해 데이터의 실제 인코딩을 수행할 콜러블(즉, 함수)입니다. 이 콜러블은
MIMEApplication
인스턴스인 하나의 인자를 취합니다. 페이 로드를 인코딩된 형식으로 변경하려면get_payload()
와set_payload()
를 사용해야 합니다. 또한, 필요에 따라 Content-Transfer-Encoding이나 기타 헤더를 메시지 객체에 추가해야 합니다. 기본 인코딩은 base64입니다. 내장 인코더의 목록은email.encoders
모듈을 참조하십시오.선택적 policy 인자의 기본값은
compat32
입니다._params는 베이스 클래스 생성자로 바로 전달됩니다.
버전 3.6에서 변경: policy 키워드 전용 매개 변수를 추가했습니다.
- class email.mime.audio.MIMEAudio(_audiodata, _subtype=None, _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶
모듈:
email.mime.audio
A subclass of
MIMENonMultipart
, theMIMEAudio
class is used to create MIME message objects of major type audio. _audiodata contains the bytes for the raw audio data. If this data can be decoded as au, wav, aiff, or aifc, then the subtype will be automatically included in the Content-Type header. Otherwise you can explicitly specify the audio subtype via the _subtype argument. If the minor type could not be guessed and _subtype was not given, thenTypeError
is raised.선택적 _encoder는 전송을 위해 오디오 데이터의 실제 인코딩을 수행할 콜러블(즉, 함수)입니다. 이 콜러블은
MIMEAudio
인스턴스인 하나의 인자를 취합니다. 페이 로드를 인코딩된 형식으로 변경하려면get_payload()
와set_payload()
를 사용해야 합니다. 또한 필요에 따라 Content-Transfer-Encoding이나 기타 헤더를 메시지 객체에 추가해야 합니다. 기본 인코딩은 base64입니다. 내장 인코더의 목록은email.encoders
모듈을 참조하십시오.선택적 policy 인자의 기본값은
compat32
입니다._params는 베이스 클래스 생성자로 바로 전달됩니다.
버전 3.6에서 변경: policy 키워드 전용 매개 변수를 추가했습니다.
- class email.mime.image.MIMEImage(_imagedata, _subtype=None, _encoder=email.encoders.encode_base64, *, policy=compat32, **_params)¶
모듈:
email.mime.image
A subclass of
MIMENonMultipart
, theMIMEImage
class is used to create MIME message objects of major type image. _imagedata contains the bytes for the raw image data. If this data type can be detected (jpeg, png, gif, tiff, rgb, pbm, pgm, ppm, rast, xbm, bmp, webp, and exr attempted), then the subtype will be automatically included in the Content-Type header. Otherwise you can explicitly specify the image subtype via the _subtype argument. If the minor type could not be guessed and _subtype was not given, thenTypeError
is raised.선택적 _encoder는 전송을 위해 이미지 데이터의 실제 인코딩을 수행할 콜러블(즉, 함수)입니다. 이 콜러블은
MIMEImage
인스턴스인 하나의 인자를 취합니다. 페이 로드를 인코딩된 형식으로 변경하려면get_payload()
와set_payload()
를 사용해야 합니다. 또한 필요에 따라 Content-Transfer-Encoding이나 기타 헤더를 메시지 객체에 추가해야 합니다. 기본 인코딩은 base64입니다. 내장 인코더의 목록은email.encoders
모듈을 참조하십시오.선택적 policy 인자의 기본값은
compat32
입니다._params는
MIMEBase
생성자로 바로 전달됩니다.버전 3.6에서 변경: policy 키워드 전용 매개 변수를 추가했습니다.
- class email.mime.message.MIMEMessage(_msg, _subtype='rfc822', *, policy=compat32)¶
-
MIMENonMultipart
의 서브 클래스,MIMEMessage
클래스는 주 유형 message의 MIME 객체를 만드는 데 사용됩니다. _msg는 페이 로드로 사용되며,Message
클래스(또는 그 서브 클래스)의 인스턴스여야 합니다, 그렇지 않으면TypeError
가 발생합니다.선택적 _subtype은 메시지의 부 유형을 설정합니다; 기본값은 rfc822입니다.
선택적 policy 인자의 기본값은
compat32
입니다.버전 3.6에서 변경: policy 키워드 전용 매개 변수를 추가했습니다.
- class email.mime.text.MIMEText(_text, _subtype='plain', _charset=None, *, policy=compat32)¶
모듈:
email.mime.text
MIMENonMultipart
의 서브 클래스,MIMEText
클래스는 주 유형 text의 MIME 객체를 만드는 데 사용됩니다. _text는 페이 로드의 문자열입니다. _subtype은 부 유형이며 기본값은 plain입니다. _charset은 텍스트의 문자 집합이며MIMENonMultipart
생성자에 인자로 전달됩니다; 기본값은 문자열에ascii
코드 포인트만 포함되어 있으면us-ascii
이고, 그렇지 않으면utf-8
입니다. _charset 매개 변수는 문자열이나Charset
인스턴스를 받아들입니다._charset 인자가 명시적으로
None
으로 설정되어 있지 않은 한, 만들어진 MIMEText 객체에는charset
매개 변수가 있는 Content-Type 헤더와 Content-Transfer-Encoding 헤더가 모두 있습니다. 이는 charset이set_payload
명령으로 전달되더라도, 후속set_payload
호출이 인코딩된 페이 로드를 만들지 않음을 의미합니다.Content-Transfer-Encoding
헤더를 삭제하여 이 동작을 “재설정”할 수 있으며, 그 후에set_payload
호출은 자동으로 새 페이 로드를 인코딩합니다 (그리고 새 Content-Transfer-Encoding 헤더를 추가합니다).선택적 policy 인자의 기본값은
compat32
입니다.버전 3.5에서 변경: _charset은
Charset
인스턴스도 받아들입니다.버전 3.6에서 변경: policy 키워드 전용 매개 변수를 추가했습니다.