IMAP_Search コマンドは、カレントのメールボックスで、検索条件に合致するメッセージを検索します。searchCriteriaは一つ以上の検索キーからなり、msgNumArrayには検索結果のメッセージシーケンス番号が返されます。
imap_ID はIMAP_Loginで作成されるIMAPログイン参照です。
searchCriteriaは一つ以上の検索キーを指定するテキスト引数です (後述の使用可能な検索キーを参照)。検索キーは一つの項目または一つ以上の検索キーの括弧つきリストです。例えば:
SearchKey1 = FLAGGED
SearchKey2 = NOT FLAGGED
SearchKey3 = FLAGGED DRAFT
Note: 通常検索は大文字小文字を区別しません。
- searchCriteriaが空の文字列の場合、検索は“select all”と同様です:
はカレントの作業中メールボックスのすべてのメッセージを返します。
- searchCriteriaが複数の検索キーを含む場合、AND検索が行われます。
searchCriteria = FLAGGED FROM "SMITH"
は\Flaggedフラグが付けられ、かつSmithから送信されたメッセージを返します。
- OR や NOT 演算子を使用できます:
searchCriteria = OR SEEN FLAGGED
は、\Seenまたは\Flaggedフラグが設定されたメッセージを返します。
searchCriteria = NOT SEEN
は、\Seenフラグが設定されていないメッセージが返されます。
searchCriteria = HEADER CONTENT-TYPE "MIXED" NOT HEADER CONTENT-TYPE "TEXT"
は、content-typeヘッダに“Mixed”を含み、かつ“Text”を含まないメッセージが返されます。
searchCriteria = HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE "MIXED"
は、content-typeヘッダに“ e ”を含み、かつSubjectヘッダに“ o ”を含まない、かつcontent-typeヘッダに“ Mixed ”を含まないメッセージが返されます。
searchCriteria = OR (ANSWERED SMALLER 400) (HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE "MIXED")
最初の括弧内条件式に合致するか、または二番目の括弧内条件式に合致するメッセージが返されます。
searchCriteria = OR ANSWERED SMALLER 400 (HEADER CONTENT-TYPE "E" NOT SUBJECT "o" NOT HEADER CONTENT-TYPE "MIXED")
\Answeredフラグが設定されている、またはメッセージ全体のサイズが400 byte未満で、かつ括弧内の条件式に合致するメッセージが返されます。
最後の二つの例題で見たとおり、括弧の有無で検索結果は異なるものとなります。
- searchCriteriaにはオプションで[CHARSET]定義を含めることができます。これは "CHARSET" 文字列と登録済みの [CHARSET] (US ASCII, ISO-8859) からなります。これはsearchCriteria文字列の文字コードを指定するものです。これを使用する場合、開発者はsearchCriteria 文字列を指定した文字セットに変換しなければなりません。(4Dの Mac to ISO コマンドを参照してください。)
デフォルトで、検索条件に拡張文字が含まれる場合、4D Internet CommandsはsearchCriteria 文字列をQuotable Printableでエンコードします。
searchCriteria = CHARSET "ISO-8859" BODY "Help"
これは検索条件が文字セット iso-8859 を使用していることを意味します。サーバは必要に応じて検索条件を変換します。
検索キーは、検索条件値を要求することがあります:
<日付> 文字列は以下の文字列で記述されます: date-day+"-"+date-month+"-"+date-year。date-dayは日を表す数字で最大2文字です。date-month は月の名前で (Jan/Feb/Mar/Apr/May/Jun/Jul/Aug/Sep/Oct/Dec) 、date-yearは年 (最大4文字)です。
例: searchCriteria = SENTBEFORE 1-Feb-2000 (日付は特別文字を含まないのでクォートで囲む必要はありません。)
<文字列> は拡張文字を含む場合、クォートで囲まなければなりません。文字列がスペースなどの特別文字をまったく含まない場合は、クォートで囲まなくても構いません。文字列をクォートで囲むことで、その文字列が正しく解釈されることを期待できます。
例: searchCriteria = FROM "SMITH"
Note: 文字列を使用するすべての検索キーは、含む検索が行われます。検索は大文字小文字を区別しません。
<フィールド名> はヘッダフィールドの名前です。
例: searchCriteria = HEADER CONTENT-TYPE "MIXED"
<フラグ> は一つ以上の (標準フラグを含む) キーワードを受け入れ、スペースで区切られます。
例: searchCriteria = KEYWORD \Flagged \Draft
複数のメッセージを指定します。メールボックス中の1からメッセージ総数までの連続したメッセージシーケンス番号から指定します。
コンマで個別の番号を区切り、コロンは二つの数字間の範囲を表します。
例:
2,4:7,9,12:* は、15のメッセージがある時、 2,4,5,6,7,9,12,13,14,15を示します。
searchCriteria = 1:5 ANSWERED はメッセージシーケンス番号が1から5までのメッセージで、\Answeredフラグが設定されたメッセージを検索します。
searchCriteria= 2,4 ANSWERED はメッセージシーケンス番号が2と4のメッセージで、\Answeredフラグが設定されたメッセージを検索します。
ALL: メールボックス中すべてのメッセージ
ANSWERED: \Answeredフラグが設定されたメッセージ
UNANSWERED: \Answeredフラグが設定されていないメッセージ
DELETED: \Deletesフラグが設定されたメッセージ
UNDELETED: \Deletesフラグが設定されていないメッセージ
DRAFT: \Draftフラグが設定されたメッセージ
UNDRAFT: \Draftフラグが設定されていないメッセージ
FLAGGED: \Flaggedフラグが設定されたメッセージ
UNFLAGGED: \Flaggedフラグが設定されていないメッセージ
RECENT: \Recentフラグが設定されたメッセージ
OLD: \Recentフラグが設定されていないメッセージ
SEEN: \Seenフラグが設定されたメッセージ
UNSEEN: \Seenフラグが設定されていないメッセージ
NEW: \Recentフラグが設定されていて、\Seenフラグが設定されていないメッセージ: これは“(RECENT UNSEEN)”と同じ意味です。
KEYWORD <フラグ>: 指定したキーワードが設定されたメッセージ
UNKEYWORD <フラグ>: 指定したキーワードが設定されていないメッセージ
BEFORE <日付>: 内部日付が指定した日付より前のメッセージ
ON <日付>: 内部日付が指定した日付のメッセージ
SINCE <日付>: 内部日付が指定した日付以降のメッセージ
SENTBEFORE <日付>: Dateヘッダが指定した日付より前のメッセージ
SENTON <日付>: Dateヘッダが指定した日付のメッセージ
SENTSINCE <日付>: Dateヘッダが指定した日付以降のメッセージ
TO <文字列>: TOヘッダに指定した文字列が含まれるメッセージ
FROM <文字列>: FROMヘッダに指定した文字列が含まれるメッセージ
CC <文字列>: CCヘッダに指定した文字列が含まれるメッセージ
BCC <文字列>: BCCヘッダに指定した文字列が含まれるメッセージ
SUBJECT <文字列>: Subjectヘッダに指定した文字列が含まれるメッセージ
BODY <文字列>: ボディにヘッダに指定した文字列が含まれるメッセージ
TEXT <文字列>: ヘッダまたはボディにヘッダに、指定した文字列が含まれるメッセージ
HEADER <フィールド名> <文字列>: 指定したヘッダが含まれかつ、フィールドの値に指定した文字列が含まれるメッセージ
UID <メッセージUID>: 指定したユニークIDに対応するメッセージ
LARGER <n>: メッセージサイズが指定したbyteより大きなメッセージ
SMALLER <n>: メッセージサイズが指定したbyteより小さなメッセージ
NOT <検索キー>: 指定した検索キーに合致しないメッセージ
OR <search-key1> <search-key2>: どちらかの検索キーに合致するメッセージ