Ruby 2.3.0 リファレンスマニュアル > ライブラリ一覧 > net/imapライブラリ > Net::IMAPクラス
クラスの継承リスト: Net::IMAP < Object < Kernel < BasicObject
IMAP 接続を表現するクラスです。
add_authenticator(auth_type, authenticator) -> ()
[permalink][rdoc]Net::IMAP#authenticate で使う 認証用クラスを設定します。
imap ライブラリに新たな認証方式を追加するために用います。
通常は使う必要はないでしょう。もしこれを用いて 認証方式を追加する場合は net/imap.rb の Net::IMAP::LoginAuthenticator などを参考にしてください。
debug -> bool
[permalink][rdoc]デバッグモードが on になっていれば真を返します。
[SEE_ALSO] Net::IMAP#debug=
debug=(val)
[permalink][rdoc]デバッグモードの on/off をします。
真を渡すと on になります。
[SEE_ALSO] Net::IMAP#debug
decode_utf7(str) -> String
[permalink][rdoc]modified UTF-7 の文字列を UTF-8 の文字列に変換します。
modified UTF-7 は IMAP のメールボックス名に使われるエンコーディングで、 UTF-7 を修正したものです。
詳しくは [RFC2060] の 5.1.3 を参照してください。
Net::IMAP ではメールボックス名のエンコードを自動的変換「しない」 ことに注意してください。必要があればユーザが変換すべきです。
[SEE_ALSO] Net::IMAP.encode_utf7
default_port -> Integer
[permalink][rdoc]default_imap_port -> Integer
デフォルトの IMAP のポート番号(143)を返します。
[SEE_ALSO] Net::IMAP.default_tls_port
default_tls_port -> Integer
[permalink][rdoc]default_imaps_port -> Integer
default_ssl_port -> Integer
デフォルトの IMAPS のポート番号(993)を返します。
[SEE_ALSO] Net::IMAP.default_port
encode_utf7(str) -> String
[permalink][rdoc]UTF-8 の文字列を modified UTF-7 の文字列に変換します。
modified UTF-7 は IMAP のメールボックス名に使われるエンコーディングで、 UTF-7 を修正したものです。
詳しくは Net::IMAP.encode_utf7 を見てください。
[SEE_ALSO] Net::IMAP.decode_utf7
format_date(time) -> String
[permalink][rdoc]時刻オブジェクトを IMAP の日付フォーマットでの文字列に変換します。
require 'net/imap' Net::IMAP.format_date(Time.new(2011, 6, 20)) # => "20-Jun-2011"
format_datetime(time) -> String
[permalink][rdoc]時刻オブジェクトを IMAP の日付時刻フォーマットでの文字列に変換します
require 'net/imap' Net::IMAP.format_datetime(Time.new(2011, 6, 20, 13, 20, 1)) # => "20-Jun-2011 13:20 +0900"
max_flag_count -> Integer
[permalink][rdoc]サーバからのレスポンスに含まれる flag の上限を返します。
これを越えた flag がレスポンスに含まれている場合は、 Net::IMAP::FlagCountError 例外が発生します。
[SEE_ALSO] Net::IMAP.max_flag_count=
max_flag_count=(count)
[permalink][rdoc]サーバからのレスポンスに含まれる flag の上限を設定します。
これを越えた flag がレスポンスに含まれている場合は、 Net::IMAP::FlagCountError 例外が発生します。
デフォルトは 10000 です。通常は変える必要はないでしょう。
[SEE_ALSO] Net::IMAP.max_flag_count
new(host, port = 143, usessl = false, certs = nil, verify = true) -> Net::IMAP
[permalink][rdoc]new(host, options) -> Net::IMAP
新たな Net::IMAP オブジェクトを生成し、指定したホストの 指定したポートに接続し、接続語の IMAP オブジェクトを返します。
usessl が真ならば、サーバに繋ぐのに SSL/TLS を用います。 SSL/TLS での接続には OpenSSL と openssl が使える必要があります。 certs は利用する証明書のファイル名もしくは証明書があるディレクトリ名を 文字列で渡します。 certs に nil を渡すと、OpenSSL のデフォルトの証明書を使います。 verify は接続先を検証するかを真偽値で設定します。 真が OpenSSL::SSL::VERIFY_PEER に、 偽が OpenSSL::SSL::VERIFY_NONE に対応します。
パラメータは Hash で渡すこともできます。以下のキーを使うことができます。
これの :ssl パラメータを使うことで、OpenSSL のパラメータを詳細に 調整できます。
例
require 'net/imap' imap = Net::IMAP.new('imap.example.com', :port => 993, :ssl => { :verify_mode => OpenSSL::SSL::VERIFY_PEER, :timeout => 600 } )
add_response_handler(handler) -> ()
[permalink][rdoc]add_response_handler(handler) {|resp| ...} -> ()
レスポンスハンドラを追加します。
レスポンスハンドラはサーバから応答を受け取るごとに 呼びだされます。ハンドラには Net::IMAP::TaggedResponse もしくは Net::IMAP::UntaggedResponse オブジェクトが 渡されます。
主にサーバからの非同期的なイベントを受け取るため に用います。例えば EXISTS 応答を受け取る (メールボックスに新たなメールが追加されたタイミングで発生します) ためなどに用いられます。
レスポンスハンドラはメインのスレッドとは別のスレッドで 呼びだされることに注意してください。
例:
imap.add_response_handler do |resp| p resp end
[SEE_ALSO] Net::IMAP#remove_response_handler
append(mailbox, message, flags = nil, date_time = nil) -> Net::IMAP::TaggedResponse
[permalink][rdoc]APPEND コマンドを送ってメッセージをメールボックスの末尾に追加します。
例:
imap.append("inbox", <<EOF.gsub(/\n/, "\r\n"), [:Seen], Time.now) Subject: hello From: someone@example.com To: somebody@example.com hello world EOF
authenticate(auth_type, user, password) -> Net::IMAP::TaggedResponse
[permalink][rdoc]AUTHENTICATE コマンドを送り、クライアントを認証します。
auth_type で利用する認証方式を文字列で指定します。
例:
imap.authenticate('LOGIN', user, password)
auth_type としては以下がサポートされています。
[SEE_ALSO] Net::IMAP#login
capability -> [String]
[permalink][rdoc]CAPABILITY コマンドを送ってサーバがサポートしている 機能(capabilities)のリストを文字列の配列として返します。
capability は IMAP に関連する RFC などで定義されています。
imap.capability # => ["IMAP4REV1", "UNSELECT", "IDLE", "NAMESPACE", "QUOTA", ... ]
check -> Net::IMAP::TaggedResponse
[permalink][rdoc]CHECK コマンドを送り、現在処理しているメールボックスの チェックポイントを要求します。
チェックポイントの要求とは、サーバ内部で保留状態になっている 操作を完了させることを意味します。例えばメモリ上にあるメールの データをディスクに書き込むため、fsyncを呼んだりすることです。 実際に何が行なわれるかはサーバの実装によりますし、何も行なわれない 場合もあります。
client_thread -> Thread
[permalink][rdoc]このメソッドは obsolete です。使わないでください。
client_thread=(th)
[permalink][rdoc]このメソッドは obsolete です。使わないでください。
close -> Net::IMAP::TaggedResponse
[permalink][rdoc]CLOSE コマンドを送り、処理中のメールボックスを閉じます。
このコマンドによって、どのメールボックスも選択されていない 状態に移行します。 そして \Deleted フラグが付けられたメールがすべて削除されます。
copy(set, mailbox) -> Net::IMAP::TaggedResponse
[permalink][rdoc]COPY コマンドを送り、指定したメッセージを 指定したメールボックスの末尾に追加します。
set でコピーするメッセージを指定します。 message sequence number(整数)、 message sequence numberの配列、もしくは Range で 指定します。コピー元のメールボックスは Net::IMAP#examine もしくは Net::IMAP#select で 指定したものを用います。 mailbox はコピー先のメールボックスです。
[SEE_ALSO] Net::IMAP#uid_copy
create(mailbox) -> Net::IMAP::TaggedResponse
[permalink][rdoc]CREATE コマンドを送り、新しいメールボックスを作ります。
delete(mailbox) -> Net::IMAP::TaggedResponse
[permalink][rdoc]DELETE コマンドを送り、指定したメールボックスを削除します。
disconnect -> nil
[permalink][rdoc]サーバとの接続を切断します。
[SEE_ALSO] Net::IMAP#disconnected?
disconnected? -> bool
[permalink][rdoc]サーバとの接続が切断されていれば真を返します。
[SEE_ALSO] Net::IMAP#disconnect
examine(mailbox) -> Net::IMAP::TaggedResponse
[permalink][rdoc]EXAMINE コマンドを送り、指定したメールボックスを処理対象の メールボックスにします。
Net::IMAP#select と異なりセッション中はメールボックスが 読み取り専用となります。それ以外は select と同じです。
expunge -> [Integer] | nil
[permalink][rdoc]EXPUNGEコマンドを送り、:Deletedフラグをセットしたメッセージを すべて処理中のメールボックスから削除します。
削除したメッセージの message sequence number を配列で返します。
fetch(set, attr) -> [Net::IMAP::FetchData]
[permalink][rdoc]FETCH コマンドを送り、メールボックス内のメッセージに 関するデータを取得します。
Net::IMAP#examine もしくは Net::IMAP#select で 指定したメールボックスを対象とします。
set で対象とするメッセージを指定します。 これには sequence number、sequence number の配列、もしくは Range オブジェクトを渡します。 attr には取得するアトリビュートを文字列の配列で渡してください。 指定可能なアトリビュートについては Net::IMAP::FetchData#attr を見てください。
例:
p imap.fetch(6..8, "UID") #=> [#<Net::IMAP::FetchData seqno=6, attr={"UID"=>98}>, #<Net::IMAP::FetchData seqno=7, attr={"UID"=>99}>, #<Net::IMAP::FetchData seqno=8, attr={"UID"=>100}>] p imap.fetch(6, "BODY[HEADER.FIELDS (SUBJECT)]") #=> [#<Net::IMAP::FetchData seqno=6, attr={"BODY[HEADER.FIELDS (SUBJECT)]"=>"Subject: test\r\n\r\n"}>] data = imap.uid_fetch(98, ["RFC822.SIZE", "INTERNALDATE"])[0] p data.seqno #=> 6 p data.attr["RFC822.SIZE"] #=> 611 p data.attr["INTERNALDATE"] #=> "12-Oct-2000 22:40:59 +0900" p data.attr["UID"] #=> 98
[SEE_ALSO] Net::IMAP#uid_fetch
getacl(mailbox) -> [Net::IMAP::MailboxACLItem]
[permalink][rdoc]GETACL コマンドを送り、メールボックスの ACL(Access Control List) を取得します。
Net::IMAP#getacl で指定したメールボックスに 対し何らかの権限を持つ各ユーザに対して Net::IMAP::MailboxACLItem オブジェクトが 作られ、その配列が返されます。
GETACL コマンドは [RFC2086] で定義されています。 詳しくはそちらを参照してください。
[SEE_ALSO] Net::IMAP::MailboxACLItem
getquota(mailbox) -> [Net::IMAP::MailboxQuota]
[permalink][rdoc]GETQUOTA コマンドを送って 指定したメールボックスの quota の情報を返します。
quota の情報は Net::IMAP::MailboxQuota オブジェクトの配列で 得られます。
詳しくは [RFC2087] を見てください。 このコマンドは Net::IMAP#capability の返り値を見ることで 利用可能かどうか判断できます。
getquotaroot(mailbox) -> [Net::IMAP::MailboxQuotaRoot | Net::IMAP::MailboxQuota]
[permalink][rdoc]GETQUOTAROOT コマンドを送って 指定したメールボックスの quota root の一覧と、 関連する quota の情報を返します。
quota root の情報は Net::IMAP::MailboxQuotaRoot のオブジェクトで、 返り値の配列の中に唯一含まれています。 quota の情報はメールボックスに関連付けられた quota root ごとに Net::IMAP::MailboxQuota オブジェクトで得られます。
詳しくは [RFC2087] を見てください。 このコマンドは Net::IMAP#capability の返り値を見ることで 利用可能かどうか判断できます。
greeting -> Net::IMAP::UntaggedResponse
[permalink][rdoc]サーバから最初に送られてくるメッセージ(greeting message) を返します。
idle {|resp| ...} -> Net::IMAP::TaggedResponse
[permalink][rdoc]IDLE 命令を送り、メールボックスの非同期的変化を待ち受けます。
このメソッドに渡したブロックは Net::IMAP#add_response_handler によって レスポンスハンドラとして用いられます。 また、このメソッドが終了する時点で Net::IMAP#remove_response_handler で ハンドラが削除されます。
レスポンスハンドラについては Net::IMAP#add_response_handler を参照してください。
別のスレッドが Net::IMAP#idle_done を呼びだすまで このメソッドを呼びだしたスレッドは停止します。
この命令は [RFC2177] で定義されています。詳しくはそちらを 参照してください。
idle_done -> ()
[permalink][rdoc]Net::IMAP#idle で 停止しているスレッドを1つ起こします。
list(refname, mailbox) -> [Net::IMAP::MailboxList] | nil
[permalink][rdoc]LIST コマンドを送り、クライアントから利用可能なメールボックス名の集合から 引数にマッチするものすべてを返します。
詳しくは [RFC2060] の 6.3.8 を参照してください。
返り値は Net::IMAP::MailboxList の配列で返します。 返り値が空集合である場合は空の配列でなく nil を返します。
例:
imap.create("foo/bar") imap.create("foo/baz") p imap.list("", "foo/%") #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
login(user, password) -> Net::IMAP::TaggedResponse
[permalink][rdoc]LOGIN コマンドを送り、平文でパスワードを送りクライアント ユーザを認証します。
Net::IMAP#authenticate で "LOGIN" を使うのとは異なる ことに注意してください。authenticate では AUTHENTICATE コマンドを 送ります。
認証成功時には 認証成功レスポンスを返り値として返します。
認証失敗時には例外が発生します。
[SEE_ALSO] Net::IMAP#authenticate
logout -> Net::IMAP::TaggedResponse
[permalink][rdoc]LOGOUT コマンドを送り、コネクションを切断することを サーバに伝えます。
lsub(refname, mailbox) -> [Net::IMAP::MailboxList]
[permalink][rdoc]LIST コマンドを送り、active/subscribed なメールボックス名の集合から 引数にマッチするものすべてを返します。
詳しくは [RFC2060] の 6.3.8 を参照してください。
返り値は Net::IMAP::MailboxList の配列で返します。 返り値が空集合である場合は空の配列でなく nil を返します。
move(set, mailbox) -> Net::IMAP::TaggedResponse
[permalink][rdoc]MOVEコマンドを送り、set で指定したメッセージを mailbox の 末尾に移動させます。
set はmessage sequence number(整数)、 message sequence numberの配列、もしくは Range で 指定します。
コピー元のメールボックスは Net::IMAP#examine もしくは Net::IMAP#select で 指定したものを用います。
[SEE_ALSO] Net::IMAP#uid_move, [RFC6851]
noop -> Net::IMAP::TaggedResponse
[permalink][rdoc]NOOP コマンドを送ります。
このコマンドは何もしません。
remove_response_handler(handler) -> ()
[permalink][rdoc]レスポンスハンドラを削除します。
[SEE_ALSO] Net::IMAP#add_response_handler
rename(mailbox, newname) -> Net::IMAP::TaggedResponse
[permalink][rdoc]RENAME コマンドを送り、指定したメールボックスをリネームします。
response_handlers -> Array
[permalink][rdoc]設定されているレスポンスハンドラ全てを 配列で返します。
[SEE_ALSO] Net::IMAP#add_response_handler
responses -> { String => [object] }
[permalink][rdoc]サーバから送られてきた untagged な応答の記録を返します。
untagged な応答は種類ごとに記録されます。 応答の種類には "FLAGS", "OK", "UIDVALIDITY", "EXISTS" などがあり、 この文字列がハッシュテーブルのキーとなります。 そして各種類ごとに配列が用意され、untagged な応答を受信するたびに その配列の末尾にその内容が記録されます。
例:
imap.select("inbox") p imap.responses["EXISTS"].last #=> 2 p imap.responses["UIDVALIDITY"].last #=> 968263756
search(keys, charset = nil) -> [Integer]
[permalink][rdoc]SEARCH コマンドを送り、条件に合うメッセージの message sequence number を配列で返します。
Net::IMAP#examine もしくは Net::IMAP#select で 指定したメールボックスを検索対象とします。
検索の条件は key に文字列の1次元配列もしくは文字列で渡します。
検索条件は "SUBJECT", "FROM" などを用いることができます。 詳しくは [RFC2060] の 6.4.4 を見てください。
例:
p imap.search(["SUBJECT", "hello"]) #=> [1, 6, 7, 8] p imap.search(["SUBJECT", "hello", "FROM", "foo@example.com"]) #=> [6, 7] p imap.search('SUBJECT "hello"') #=> [1, 6, 7, 8]
[SEE_ALSO] Net::IMAP#search
select(mailbox) -> Net::IMAP::TaggedResponse
[permalink][rdoc]SELECT コマンドを送り、指定したメールボックスを処理対象の メールボックスにします。
このコマンドが成功すると、クライアントの状態が「selected」になります。
このコマンドを実行した直後に Net::IMAP#responses["EXISTS"].last を調べると、メールボックス内のメールの数がわかります。 また、Net::IMAP#responses["RECENT"].lastで、 最新のメールの数がわかります。 これらの値はセッション中に変わりうることに注意してください。 Net::IMAP#add_response_handler を使うとそのような更新情報を 即座に取得できます。
setacl(mailbox, user, rights)
[permalink][rdoc]SETACL コマンドを送り、指定したメールボックスに 指定したユーザに関する権限を設定します。
rights には設定する権限を表す文字列を指定します。 どのような文字列を指定すべきかは [RFC2086] を参照してください。 rights に nil を渡すと、空文字列を指定したのと同様、つまり すべての権限を削除します。
setquota(mailbox, quota) -> Net::IMAP::TaggedResponse
[permalink][rdoc]SETQUOTA コマンドを送り、指定したメールボックスに quota を設定します。
quota が nil ならば、mailbox の quota を破棄します。 quota が整数なら STORAGE をその値に変更します。
詳しくは [RFC2087] を見てください。 このコマンドは Net::IMAP#capability の返り値を見ることで 利用可能かどうか判断できます。
sort(sort_keys, search_keys, charset) -> [Integer]
[permalink][rdoc]uid_sort(sort_keys, search_keys, charset) -> [Integer]
SORT コマンド送り、メールボックス内の メッセージをソートした結果を返します。
SORT コマンドは [RFC5256] で定義されています。 詳しくはそちらを参照してください。 このコマンドは Net::IMAP#capability の返り値を見ることで 利用可能かどうか判断できます。
sort_keys にはソート順を決めるキーを文字列の配列で指定します。 "ARRIVAL", "CC", "FROM", "TO", "SUBJECT" などが指定できます。 詳しくは [RFC5265] の BASE.6.4.SORT の所を見てください。
search_key には検索条件を渡します。Net::IMAP#search と ほぼ同じです。この条件にマッチするメッセージのみがソートされます。
Net::IMAP#examine もしくは Net::IMAP#select で指定したメールボックスを対象とします。
返り値は message sequence number の配列を返します。
例:
p imap.sort(["FROM"], ["ALL"], "US-ASCII") #=> [1, 2, 3, 5, 6, 7, 8, 4, 9] p imap.sort(["DATE"], ["SUBJECT", "hello"], "US-ASCII") #=> [6, 7, 8, 1]
starttls(options) -> Net::IMAP::TaggedResponse
[permalink][rdoc]starttls(certs, verify) -> Net::IMAP::TaggedResponse
STARTTLS コマンドを送って TLS のセッションを開始します。
options で openssl に渡すオプションを指定します。 OpenSSL::SSL::SSLContext#set_params の引数と同じ意味です。
互換性のため、certs で証明書or証明書ディレクトリのファイル名(文字列)、 verify で検証するかどうか(Net::IMAP::VERIFY_PEER、 Net::IMAP::VERIFY_NONEに対応します)を 指定することができます。
status(mailbox, attr) -> {String => Integer}
[permalink][rdoc]STATUS コマンドを送り、mailbox のステータスを得ます。
問い合わせたいステータスは attr に文字列の配列で渡します。
返り値は アトリビュート文字列をキーとするハッシュです。
詳しくは [RFC2060] の 6.3.10 を参考にしてください。
例:
p imap.status("inbox", ["MESSAGES", "RECENT"]) #=> {"RECENT"=>0, "MESSAGES"=>44}
store(set, attr, flags) -> [Net::IMAP::FetchData] | nil
[permalink][rdoc]STORE コマンドを送り、メールボックス内のメッセージを 更新します。
set で更新するメッセージを指定します。 これには sequence number、sequence number の配列、もしくは Range オブジェクトを渡します。
Net::IMAP#select で指定したメールボックスを対象とします。
attr で何をどのように変化させるかを指定します。 以下を指定することができます。
それぞれメッセージのフラグの置き換え、追加、削除を意味します。 詳しくは [RFC2060] の 6.4.6 を参考にしてください。
flags には シンボルの配列で置き換え、追加もしくは削除される フラグを指定します。
返り値は更新された内容を Net::IMAP::FetchData オブジェクトの 配列で返します。
例:
p imap.store(6..8, "+FLAGS", [:Deleted]) #=> [#<Net::IMAP::FetchData seqno=6, attr={"FLAGS"=>[:Seen, :Deleted]}>, #<Net::IMAP::FetchData seqno=7, attr={"FLAGS"=>[:Seen, :Deleted]}>, #<Net::IMAP::FetchData seqno=8, attr={"FLAGS"=>[:Seen, :Deleted]}>]
[SEE_ALSO] Net::IMAP#uid_store, Net::IMAP#fetch
subscribe(mailbox) -> Net::IMAP::TaggedResponse
[permalink][rdoc]SUBSCRIBE コマンドを送り、指定したメールボックスを "active" もしくは "subscribe" なメールボックスの集合に 追加します。
thread(algorithm, search_keys, charset) -> [Net::IMAP::ThreadMember]
[permalink][rdoc]THREADコマンドを送り、メールボックスを検索した結果を スレッド形式の木構造で返します。
THREAD コマンドは [RFC5256] で定義されています。 詳しくはそちらを参照してください。 このコマンドは Net::IMAP#capability の返り値を見ることで 利用可能かどうか判断できます。
algorithm は木構造を決定するためのアルゴリズムを指定します。 以下の2つが利用可能です。
詳しくは [RFC5256] を見てください。
search_key には検索条件を渡します。 Net::IMAP#search と同等です。
[SEE_ALSO] Net::IMAP::ThreadMember, Net::IMAP#uid_thread
uid_copy(set, mailbox) -> Net::IMAP::TaggedResponse
[permalink][rdoc]UID COPY コマンドを送り、指定したメッセージを 指定したメールボックスの末尾に追加します。
set でコピーするメッセージを指定します。 UID (整数)、 UID の配列、もしくは Range で 指定します。コピー元のメールボックスは Net::IMAP#examine もしくは Net::IMAP#select で 指定したものを用います。 mailbox はコピー先のメールボックスです。
[SEE_ALSO] Net::IMAP#copy
uid_fetch(set, attr) -> [Net::IMAP::FetchData]
[permalink][rdoc]UID FETCH コマンドを送り、メールボックス内のメッセージに 関するデータを取得します。
Net::IMAP#examine もしくは Net::IMAP#select で 指定したメールボックスを対象とします。
set で対象とするメッセージを指定します。 これには UID、UID の配列、もしくは Range オブジェクトを渡します。 attr には取得するアトリビュートを文字列の配列で渡してください。 指定可能なアトリビュートについては Net::IMAP::FetchData#attr を見てください。
[SEE_ALSO] Net::IMAP#fetch
uid_move(set, mailbox) -> Net::IMAP::TaggedResponse
[permalink][rdoc]MOVEコマンドを送り、set でUIDで指定したメッセージを mailbox の 末尾に移動させます。
set には UID、UID の配列、もしくは Range オブジェクトを渡します。
コピー元のメールボックスは Net::IMAP#examine もしくは Net::IMAP#select で 指定したものを用います。
[SEE_ALSO] Net::IMAP#move, [RFC6851]
uid_search(keys, charset = nil) -> [Integer]
[permalink][rdoc]UID SEARCH コマンドを送り、条件に合うメッセージの UID を配列で返します。
Net::IMAP#examine もしくは Net::IMAP#select で 指定したメールボックスを検索対象とします。
検索の条件は key に文字列の1次元配列もしくは文字列で渡します。
検索条件は "SUBJECT", "FROM" などを用いることができます。 詳しくは [RFC2060] の 6.4.4 を見てください。
例:
p imap.uid_search(["SUBJECT", "hello"]) #=> [1, 6, 7, 8] p imap.uid_search(["SUBJECT", "hello", "FROM", "foo@example.com"]) #=> [6, 7] p imap.uid_search('SUBJECT "hello"') #=> [1, 6, 7, 8]
[SEE_ALSO] Net::IMAP#uid_search
uid_store(set, attr, flags) -> [Net::IMAP::FetchData] | nil
[permalink][rdoc]UID STORE コマンドを送り、メールボックス内のメッセージを 更新します。
set で更新するメッセージを指定します。 これには UID、UID の配列、もしくは Range オブジェクトを渡します。
Net::IMAP#select で指定したメールボックスを対象とします。
attr で何をどのように変化させるかを指定します。 以下を指定することができます。
それぞれメッセージのフラグの置き換え、追加、削除を意味します。 詳しくは [RFC2060] の 6.4.6 を参考にしてください。
返り値は更新された内容を Net::IMAP::FetchData オブジェクトの 配列で返します。
[SEE_ALSO] Net::IMAP#store, Net::IMAP#uid_fetch
uid_thread(algorithm, search_keys, charset) -> [Net::IMAP::ThreadMember]
[permalink][rdoc]THREADコマンドを送り、メールボックスを検索した結果を スレッド形式の木構造で返します。
ほぼ Net::IMAP#thread と同じですが、返ってくるオブジェクトの Net::IMAP::ThreadMember#seqno の内容が message sequence number ではなく UID となります。
[SEE_ALSO] Net::IMAP::ThreadMember, Net::IMAP#thread
unsubscribe(mailbox) -> Net::IMAP::TaggedResponse
[permalink][rdoc]UNSUBSCRIBE コマンドを送り、指定したメールボックスを "active" もしくは "subscribe" なメールボックスの集合から 削除します。
xlist(refname, mailbox) -> [Net::IMAP::MailboxList]
[permalink][rdoc]XLISTコマンドを送り、クライアントから利用可能なメールボックス名の集合から 引数にマッチするものすべてを返します。
Net::IMAP#list とほぼ同様ですが、 「:Sent」などの拡張されたフラグを含むことが異なります。
詳しくは http://code.google.com/apis/gmail/imap/ を参照してください。
例:
imap.create("foo/bar") imap.create("foo/baz") p imap.xlist("", "foo/%") #=> [#<Net::IMAP::MailboxList attr=[:Noselect], delim="/", name="foo/">, \\ # #<Net::IMAP::MailboxList attr=[:Noinferiors, :Marked], delim="/", name="foo/bar">, \\ # #<Net::IMAP::MailboxList attr=[:Noinferiors], delim="/", name="foo/baz">]
ANSWERED -> Symbol
[permalink][rdoc]「:Answered」というシンボルを返します。
そのメッセージに返答したことを意味します。
フラグメッセージ属性として用いられます (Net::IMAP::FetchData#attr)。
詳しくは [RFC2060] を参照してください。
DELETED -> Symbol
[permalink][rdoc]「:Deleted」というシンボルを返します。
メッセージが削除されていることを意味します。 EXPUNGE で完全に除去されます。
フラグメッセージ属性として用いられます (Net::IMAP::FetchData#attr)。
詳しくは [RFC2060] を参照してください。
DRAFT -> Symbol
[permalink][rdoc]「:Draft」というシンボルを返します。
メッセージが草稿であることを意味します。
フラグメッセージ属性として用いられます (Net::IMAP::FetchData#attr)。
詳しくは [RFC2060] を参照してください。
FLAGGED -> Symbol
[permalink][rdoc]「:Flagged」というシンボルを返します。
そのメッセージに特別なフラグを立てていることを意味します。
フラグメッセージ属性として用いられます (Net::IMAP::FetchData#attr)。
詳しくは [RFC2060] を参照してください。
MARKED -> Symbol
[permalink][rdoc]「:Marked」というシンボルを返します。
メールボックスが「interesting」であるとサーバによって 印付けられていることを意味します。通常メールボックスに 新しいメールが届いていることを意味します。
LIST応答の属性 (Net::IMAP#list、Net::IMAP::MailboxList#attr) として用いられます。
詳しくは [RFC2060] を参照してください。
NOINFERIORS -> Symbol
[permalink][rdoc]「:Noinferiors」というシンボルを返します。
このメールボックスの 下に子レベルの階層が存在不可能であることを意味します。
LIST応答の属性 (Net::IMAP#list、Net::IMAP::MailboxList#attr) として用いられます。
詳しくは [RFC2060] を参照してください。
NOSELECT -> Symbol
[permalink][rdoc]「:Noselect」というシンボルを返します。
メールボックスが選択可能でないことを意味します。
LIST応答の属性 (Net::IMAP#list、Net::IMAP::MailboxList#attr) として用いられます。
詳しくは [RFC2060] を参照してください。
RECENT -> Symbol
[permalink][rdoc]「:Recent」というシンボルを返します。
メッセージが「最近」メールボックスに到着したことを意味します。
フラグメッセージ属性として用いられます (Net::IMAP::FetchData#attr)。
詳しくは [RFC2060] を参照してください。
SEEN -> Symbol
[permalink][rdoc]「:Seen」というシンボルを返します。
そのメッセージが既に読まれていることを意味します。
フラグメッセージ属性として用いられます (Net::IMAP::FetchData#attr)。
詳しくは [RFC2060] を参照してください。
UNMARKED -> Symbol
[permalink][rdoc]「:Unmarked」というシンボルを返します。
メールボックスが 印付けられていないことを意味します。 メールボックスに新しいメールが届いていないことを意味します。
LIST応答の属性 (Net::IMAP#list、Net::IMAP::MailboxList#attr) として用いられます。
詳しくは [RFC2060] を参照してください。