version 6.8.1
IMAP_SetFlags (imap_ID; startMsg; endMsg; msgFlagsList; deleteOption) --> 整数
引数 | タイプ | 説明 | |
imap_ID | 倍長整数 | --> | IMAPログイン参照 |
startMsg | 倍長整数 | --> | 開始メッセージ番号 |
endMsg | 倍長整数 | --> | 終了メッセージ番号 |
msgFlagsList | 文字|テキスト | --> | 追加または削除するフラグ |
deleteOption | 整数 | --> | 1 = フラグを追加, 0 = フラグを削除 |
戻り値 | 整数 | エラーコード |
説明
IMAP_SetFlags コマンドはm指定した範囲のメッセージに対して、一度に複数のフラグを設定、あるいは削除できます。
IMAPプロトコルでは、メッセージにフラグを付加することができます。二つのタイプのフラグがあります: permanent および session-only.
Permanentフラグはメッセージフラグから恒久的に追加または削除されます。 (IMAP_SetCurrentMB参照)。言い換えれば、permanentフラグの変更は、セッションをまたいでも有効です。
Sessionフラグへの変更は、そのセッションでのみ有効です。
現在定義されているシステムフラグは:
・Seen: メッセージは既読である。
・Answered: メッセージは返信済みである。
・Flagged: メッセージは緊急/特別な注意が必要。
・Deleted: メッセージはIMAP_Delete, IMAP_CloseCurrentMB, IMAP_SetCurrentMB または IMAP_Logout.により削除される。
・Draft: メッセージは完成しておらず、下書きである。
・Recent: メッセージはこのメールボックスに最近到着した。このセッションがこのメールが到着してから開かれる初めてのセッションである。以降のセッションではこのメッセージに対して\Recentフラグを見ることはない。このpermanentフラグはIMAPサーバにより管理され、IMAP_SetFlagsを使用するなどしてIMAPクライアントから操作することはできない。
IMAPサーバは、クライアントが新しいフラグを定義することを許可することがあります。またIMAPサーバによっては上に示されたフラグ以外のフラグをサポートすることがあります。これはIMAPサーバの実装によります。この場合、これらの特別なフラグは“keywords”と呼ばれ、“\”では始まりません (IMAP_SetCurrentMB参照)。
Note: \Deletedフラグをセットして、IMAP_SetCurrentMB, IMAP_CloseCurrentMB, IMAP_Delete または IMAP_Logoutを使用してカレントのセッションを閉じると、メッセージは恒久的に削除されます。
imap_ID はIMAP_Loginで作成されるIMAPログイン参照です。
startMsg は情報を取得するメッセージリストの開始メッセージ番号です。メッセージ番号は現在処理対象のメールボックス中のすべてのメッセージにおける、メッセージの位置を表します。
endMsg は情報を取得するメッセージリストの終了メッセージ番号です。メッセージ番号は現在処理対象のメールボックス中のすべてのメッセージにおける、メッセージの位置を表します。
Note: IMAP_Delete, IMAP_MsgLstInfo, IMAP_MsgLst, IMAP_SetFlags, IMAP_GetFlags そしてIMAP_CopyToMBコマンドは、startMsgがendMsgよりも大きい場合でもエラーを返しません。この場合、コマンドは何も行いません。
msgFlagsList には一つ以上のフラグを含みます。複数のフラグを渡す場合、それぞれのフラグはスペースで区切ります。以下の例題を参照してください。
permanentFlagsとしてリストされたフラグのみが適用されます (IMAP_SetCurrentMB参照)。
deleteOption は、msgFlagsList 引数で指定したフラグを追加するか削除するかを指定する整数値です。
・0を指定すると、msgFlagsListで指定されたフラグが取り除かれます。
・1を指定すると、msgFlagsListで指定されたフラグが追加されます。
例題
1. フラグが既に付けられているかいないかにかかわらず、startMsgとendMsgで指定したメッセージに、\Answeredと\Draftフラグを設定します。
msgFlagsName:="\Answered \Draft" ` \Answeredと\Draft はスペースで区切られる (ASCII code) IMAP_SetFlags (imap_ID;startMsg;endMsg;msgFlagsName;1)
2. フラグが既に付けられているかいないかにかかわらず、startMsgとendMsgで指定したメッセージに、\Deletedフラグを削除します。
msgFlagsName:="\Deleted" IMAP_SetFlags (imap_ID;startMsg;endMsg;msgFlagsName;0)
3. フラグが既に付けられているかいないかにかかわらず、startMsgとendMsgで指定したメッセージに、\Deletedフラグを設定します。
msgFlagsName:="\Deleted" IMAP_SetFlags (imap_ID;startMsg;endMsg;msgFlagsName;1) IMAP_CloseCurrentMB (imap_ID) `カレントのメールボックスを閉じ、メッセージを恒久的に削除します。
4. CheckBoxAnswered チェックボックスの値に基づき、\Answeredフラグを設定します。
$Error:= IMAP_SetFlags (vImap_ID;$msgNum;$msgNum;"\Answered";Num (CheckBoxAnswered =0))
参照
IMAP_GetFlags, IMAP_SetCurrentMB.