18.1.9. email.utils:その他のユーティリティ—Pythonドキュメント
18.1.9。 email.utils :その他のユーティリティ
email.utils モジュールで提供されるいくつかの便利なユーティリティがあります。
- email.utils.quote(str)
- str のバックスラッシュが2つのバックスラッシュに置き換えられ、二重引用符がバックスラッシュ-二重引用符に置き換えられた新しい文字列を返します。
- email.utils.unquote(str)
- 引用符で囲まれていないバージョンの str である新しい文字列を返します。 str が終了し、二重引用符で始まる場合、それらは削除されます。 同様に、 str が山かっこで終わり、角かっこで始まる場合、それらは削除されます。
- email.utils.parseaddr(address)
- アドレス( To や Cc などのアドレスを含むフィールドの値である必要があります)を構成要素の実名および電子メールアドレスに解析します。 ]パーツ。 解析が失敗しない限り、その情報のタプルを返します。失敗した場合は、
(, )
の2タプルが返されます。
- email.utils.formataddr(pair)
- parseaddr()の逆で、これは
(realname, email_address)
の形式の2タプルを取り、 To または Cc に適した文字列値を返します。 ]ヘッダー。 pair の最初の要素がfalseの場合、2番目の要素は変更されずに返されます。
- email.utils.getaddresses(fieldvalues)
このメソッドは、
parseaddr()
によって返される形式の2タプルのリストを返します。 fieldvalues は、 Message.get_all によって返される可能性のあるヘッダーフィールド値のシーケンスです。 メッセージのすべての受信者を取得する簡単な例を次に示します。from email.utils import getaddresses tos = msg.get_all('to', []) ccs = msg.get_all('cc', []) resent_tos = msg.get_all('resent-to', []) resent_ccs = msg.get_all('resent-cc', []) all_recipients = getaddresses(tos + ccs + resent_tos + resent_ccs)
- email.utils.parsedate(date)
- RFC 2822 のルールに従って日付を解析しようとします。 ただし、一部のメーラーは指定された形式に従わないため、 parsedate()はそのような場合に正しく推測しようとします。 date は、
"Mon, 20 Nov 1995 19:12:08 -0500"
など、 RFC 2822 の日付を含む文字列です。 日付の解析に成功した場合、 parsedate()は time.mktime()に直接渡すことができる9タプルを返します。 それ以外の場合は、None
が返されます。 結果タプルのインデックス6、7、および8は使用できないことに注意してください。
- email.utils.parsedate_tz(date)
- parsedate()と同じ機能を実行しますが、
None
または10タプルのいずれかを返します。 最初の9つの要素は、 time.mktime()に直接渡すことができるタプルを構成し、10番目はUTC(グリニッジ標準時の公式用語)からの日付のタイムゾーンのオフセットです。 X301X] 1 。 入力文字列にタイムゾーンがない場合、返されるタプルの最後の要素はNone
です。 結果タプルのインデックス6、7、および8は使用できないことに注意してください。
- email.utils.mktime_tz(tuple)
- parsedate_tz()によって返される10タプルをUTCタイムスタンプ(エポックからの秒数)に変換します。 タプルのタイムゾーン項目が
None
の場合、現地時間を想定します。
- email.utils.formatdate([timeval[, localtime][, usegmt]])
RFC 2822 に従って日付文字列を返します。例:
Fri, 09 Nov 2001 01:08:47 -0000
オプションの timeval は、 time.gmtime()および time.localtime()で受け入れられる浮動小数点時間値です。それ以外の場合は、現在の時刻が使用されます。
オプションの localtime は、
True
の場合、 timeval を解釈し、夏時間を適切に考慮して、UTCではなくローカルタイムゾーンに関連する日付を返すフラグです。 デフォルトはFalse
で、UTCが使用されることを意味します。オプションの usegmt は、
True
の場合、数値-0000
ではなく、タイムゾーンをASCII文字列GMT
として日付文字列を出力するフラグです。 これは、一部のプロトコル(HTTPなど)で必要です。 これは、 localtime がFalse
の場合にのみ適用されます。 デフォルトはFalse
です。バージョン2.4の新機能。
- email.utils.make_msgid([idstring])
- RFC 2822 準拠の Message-ID ヘッダーに適した文字列を返します。 オプションの idstring は、指定されている場合、メッセージIDの一意性を強化するために使用される文字列です。
- email.utils.decode_rfc2231(s)
- RFC 2231 に従って、文字列 s をデコードします。
- email.utils.encode_rfc2231(s[, charset[, language]])
- RFC 2231 に従って、文字列 s をエンコードします。 オプションの charset および language (指定されている場合)は、使用する文字セット名と言語名です。 どちらも指定されていない場合、 s はそのまま返されます。 charset が指定されているが、 language が指定されていない場合、文字列は language の空の文字列を使用してエンコードされます。
- email.utils.collapse_rfc2231_value(value[, errors[, fallback_charset]])
ヘッダーパラメータが RFC 2231 形式でエンコードされている場合、 Message.get_param は、文字セット、言語、および値を含む3タプルを返す場合があります。 colllapse_rfc2231_value()は、これをUnicode文字列に変換します。 オプションの errors は、組み込みの unicode()関数の errors 引数に渡されます。 デフォルトは
replace
です。 オプションの fallback_charset は、 RFC 2231 ヘッダーの文字セットがPythonで認識されていない場合に使用する文字セットを指定します。 デフォルトはus-ascii
です。便宜上、 colllapse_rfc2231_value()に渡される value がタプルでない場合は、文字列である必要があり、引用符で囲まずに返されます。
- email.utils.decode_params(params)
- RFC 2231 に従ってパラメータリストをデコードします。 params は、
(content-type, string-value)
の形式の要素を含む2タプルのシーケンスです。
バージョン2.4で変更: dump_address_pair()
機能が削除されました。 代わりに formataddr()を使用してください。
バージョン2.4で変更: decode()
機能が削除されました。 代わりにHeader.decode_header
メソッドを使用してください。
バージョン2.4で変更: encode()
機能が削除されました。 代わりに Header.encode メソッドを使用してください。
脚注
- 1
- タイムゾーンオフセットの符号は、同じタイムゾーンの
time.timezone
変数の符号と反対であることに注意してください。 後者の変数はPOSIX標準に従いますが、このモジュールは RFC 2822 に従います。