全ての IMAP4rev1 命令は、同じ名前のメソッドで表されており、大文字の ものも小文字のものもあります。
命令に対する引数は全て文字列に変換されます。例外は "AUTHENTICATE"の引数と "APPEND" の最後の引数で、これは IMAP4 リテラルとして
渡されます。必要に応じて (IMAP4 プロトコルが感知対象としている
文字が文字列に入っており、かつ丸括弧か二重引用符で囲われていなかった
場合) 文字列はクオートされます。しかし、"LOGIN" 命令の
password 引数は常にクオートされます。文字列がクオートされない
ようにしたい (例えば "STORE" 命令の flags 引数) 場合、
文字列を丸括弧で囲んでください (例: r'(\Deleted)'
)。
各命令はタプル: (type, [data, ...])
を返し、
type は通常 'OK'
または 'NO'
です。
data は命令に対する応答をテキストにしたものか、命令に対する
実行結果です。各 data は文字列かタプルとなります。タプルの場合、
最初の要素はレスポンスのヘッダで、次の要素にはデータが格納されます。
(ie: 'literal' value)
以下のコマンドにおける message_set オプションは、操作の対象とな
るひとつあるいは複数のメッセージを指す文字列です。単一のメッセージ番号
('1'
) かメッセージ番号の範囲 ('2:4'
)、あるいは連続してい
ないメッセージをカンマでつなげたもの ('1:3,6:9'
) となります。範
囲指定でアスタリスクを使用すると、上限を無限とすることができます
('3:*'
)。
IMAP4 のインスタンスは以下のメソッドを持っています:
mailbox, flags, date_time, message) |
mechanism, authobject) |
mechanismは利用する認証メカニズムを与えます。
認証メカニズムはインスタンス変数capabilities
の中に
AUTH=mechanism
という形式で現れる必要があります。
authobjectは呼び出し可能なオブジェクトである必要があります。
data = authobject(response)
これはサーバで継続応答を処理するためによばれます。
これは(おそらく)暗号化されて、サーバへ送られた data
を返します。
もしクライアントが中断応答 "*" を送信した場合にはこれは None
を返します。
) |
) |
message_set, new_mailbox) |
mailbox) |
mailbox) |
mailbox, who) |
) |
message_set, message_parts) |
mailbox) |
mailbox, entry, attribute) |
root) |
mailbox) |
[directory[, pattern]]) |
user, password) |
user, password) |
) |
[directory[, pattern]]) |
mailbox) |
) |
) |
host, port) |
read
、
readline
、send
、およびshutdown
メソッドで
使われます。このメソッドはオーバライドすることができます。
message_num, message_part, start, length) |
user) |
size) |
) |
) |
None
になり、そうでない場合 "RECENT" 応答の値になります。
oldmailbox, newmailbox) |
code) |
None
を返します。通常の形式 (usual type) ではなく指定したコード
を返します。
charset, criterion[, ...]) |
None
でもよく、この場合にはサーバ
への要求内に "CHARSET" は指定されません。IMAP プロトコルは
少なくとも一つの条件 (criterion) が指定されるよう要求しています;
サーバがエラーを返した場合、例外が送出されます。
例:
# M is a connected IMAP4 instance... typ, msgnums = M.search(None, 'FROM', '"LDJ"') # or: typ, msgnums = M.search(None, '(FROM "LDJ")')
[mailbox[, readonly]]) |
'INBOX'
です。readonly が設定された
場合、メイルボックスに対する変更はできません。
data) |
data
を送信します。
このメソッドはオーバライドすることができます。
mailbox, who, what) |
mailbox, entry, attribute[, ...]) |
root, limits) |
) |
open
で確立された接続を閉じます。
このメソッドはオーバライドすることができます。
) |
sort_criteria, charset, search_criterion[, ...]) |
sort
命令は search
に結果の並べ替え (sort) 機能をつけた
変種です。返されるデータには、条件に合致するメッセージ番号をスペースで
分割したリストが入っています。
sort 命令は search_criterium の前に二つの引数を持ちます;
sort_criteria のリストを丸括弧で囲ったものと、検索時の
charset です。
search
と違って、検索時の charset は必須です。
uid sort
命令もあり、search
に対する uid search
と同じように sort
命令に対応します。
sort
命令はまず、charset 引数の指定に従って searching criteria
の文字列を解釈し、メイルボックスから与えられた検索条件に合致する
メッセージを探します。次に、合致したメッセージの数を返します。
"IMAP4rev1" 拡張命令です。
mailbox, names) |
message_set, command, flag_list) |
たとえば、すべてのメッセージに削除フラグを設定するには次のようにします。
typ, data = M.search(None, 'ALL') for num in data[0].split(): M.store(num, '+FLAGS', '\\Deleted') M.expunge()
mailbox) |
threading_algorithm, charset, search_criterion[, ...]) |
thread
コマンドはsearch
にスレッドの概念を加えた変形版で
ス。返されるデータは空白で区切られたスレッドメンバのリストを含んでい
ます。
各スレッドメンバは0以上のメッセージ番号からなり、空白で区切られ て おり、親子関係を示しています。
thread
コマンドはsearch_criterion引数の前に2つの引数を持っています。
threading_algorithmとcharsetです。
search
コマンドとは違い、charsetは必須です。
search
に対する uid search
と同様に、 thread
にも
uid thread
があります。
thread
コマンドはまずメールボックス中のメッセージを、charsetを
用いた検索条件で検索します。その後マッチしたメッセージを指定された
スレッドアルゴリズムでスレッド化して返します.
これは "IMAP4rev1" の拡張コマンドです。 バージョン 2.4 で 新たに追加 された仕様です。
command, arg[, ...]) |
mailbox) |
name[, arg[, ...]]) |
IMAP4_SSL のインスタンスは追加のメソッドを一つだけ持ちます:
) |
以下の属性が IMAP4 のインスタンス上で定義されています:
Debug
から取られます。3 以上の値にすると各命令をトレースします。
ご意見やご指摘をお寄せになりたい方は、 このドキュメントについて... をご覧ください。