email.mime:メールとMIMEオブジェクトを最初から作成する—Pythonドキュメント

提供:Dev Guides
< PythonPython/docs/3.8/library/email.mime
移動先:案内検索

email.mime :メールとMIMEオブジェクトを最初から作成する

ソースコード: :source: `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 )、および _subtypeContent-Type マイナータイプ(例: plain または gif )。 _params はパラメーターキー/値ディクショナリであり、 Message.add_header に直接渡されます。

policy が指定されている場合(デフォルトは compat32 ポリシー)、 Message に渡されます。

MIMEBase クラスは、常に Content-Type ヘッダーを追加します( _maintype_subtype 、および _params に基づく) 、および MIME-Version ヘッダー(常に1.0に設定されます)。

バージョン3.6で変更: policy キーワードのみのパラメーターを追加。

class email.mime.nonmultipart.MIMENonMultipart

モジュール:email.mime.nonmultipart

MIMEBase のサブクラスであり、 multipart ではないMIMEメッセージの中間基本クラスです。 このクラスの主な目的は、 attach()メソッドの使用を防ぐことです。これは、 multipart メッセージに対してのみ意味があります。 attach()が呼び出されると、 MultipartConversionError 例外が発生します。

class email.mime.multipart.MIMEMultipart(_subtype='mixed', boundary=None, _subparts=None, *, policy=compat32, **_params)

モジュール:email.mime.multipart

MIMEBase のサブクラスであり、これは multipart であるMIMEメッセージの中間基本クラスです。 オプションの _subtype はデフォルトで mixed ですが、メッセージのサブタイプを指定するために使用できます。 multipart / _subtypeContent-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)

モジュール:email.mime.application

MIMENonMultipart のサブクラスである MIMEApplication クラスは、メジャータイプ application のMIMEメッセージオブジェクトを表すために使用されます。 _data は、生のバイトデータを含む文字列です。 オプションの _subtype は、MIMEサブタイプを指定し、デフォルトは octet-stream です。

オプションの _encoder は呼び出し可能です(つまり、 関数)これは、トランスポート用のデータの実際のエンコードを実行します。 この呼び出し可能オブジェクトは、 MIMEApplication インスタンスという1つの引数を取ります。 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

MIMENonMultipart のサブクラスである MIMEAudio クラスは、メジャータイプ audio のMIMEメッセージオブジェクトを作成するために使用されます。 _audiodata は、生のオーディオデータを含む文字列です。 このデータが標準のPythonモジュール sndhdr でデコードできる場合、サブタイプは Content-Type ヘッダーに自動的に含まれます。 それ以外の場合は、 _subtype 引数を使用してオーディオサブタイプを明示的に指定できます。 マイナータイプを推測できず、 _subtype が指定されなかった場合、 TypeError が発生します。

オプションの _encoder は呼び出し可能です(つまり、 関数)これは、トランスポート用のオーディオデータの実際のエンコードを実行します。 この呼び出し可能オブジェクトは、 MIMEAudio インスタンスという1つの引数を取ります。 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

MIMENonMultipart のサブクラスである MIMEImage クラスは、メジャータイプ image のMIMEメッセージオブジェクトを作成するために使用されます。 _imagedata は、生の画像データを含む文字列です。 このデータが標準のPythonモジュール imghdr でデコードできる場合、サブタイプは Content-Type ヘッダーに自動的に含まれます。 それ以外の場合は、 _subtype 引数を使用して画像サブタイプを明示的に指定できます。 マイナータイプを推測できず、 _subtype が指定されなかった場合、 TypeError が発生します。

オプションの _encoder は呼び出し可能です(つまり、 関数)これは、転送用の画像データの実際のエンコードを実行します。 この呼び出し可能オブジェクトは、 MIMEImage インスタンスという1つの引数を取ります。 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)

モジュール:email.mime.message

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オブジェクトには、 Content-Type ヘッダーとcharsetパラメーターの両方が含まれます。 Content-Transfer-Encoding ヘッダー。 これは、set_payloadコマンドで文字セットが渡された場合でも、後続のset_payload呼び出しでエンコードされたペイロードが生成されないことを意味します。 Content-Transfer-Encodingヘッダーを削除すると、この動作を「リセット」できます。その後、set_payload呼び出しにより、新しいペイロードが自動的にエンコードされます(そして、新しい Content-Transfer-Encoding が追加されます)。ヘッダ)。

オプションの policy 引数のデフォルトは compat32 です。

バージョン3.5で変更: _charsetCharset インスタンスも受け入れます。

バージョン3.6で変更: policy キーワードのみのパラメーターを追加。