GET
GETコマンドは、メール・サーバーからメールの詳細を取り出します。GETコマンドは、通常、すべてのメッセージと、そのメッセージに関する該当情報を取得する場合に繰り返し使用されます。
条件付
GET -------- OBJECT -------------なし------------------------|
*MESSAGECOUNT
*FIRSTMESSAGE
*NEXTMESSAGE
*FROMADDRESS
*SUBJECT
*SENTDATE
*ATTACHMENTS
*UID
*HEADER
キーワード
OBJECT |
このキーワードはGETコマンドで指定し、あらかじめ決められたいずれかの値を使用します。 値*MESSAGECOUNTは、JSMコマンド・メッセージ・パラメータのフォルダー内のメッセージ数を返します。 値*FIRSTMESSAGEは、現在のメッセージを、フォルダー内の最初のメッセージに設定します。使用できるメッセージがない場合、コマンド・ステータス・フィールドはNOMAILに設定されます。 値*NEXTMESSAGEを指定した場合、フォルダー内の次のメール・メッセージが取得され、これが現在のメッセージとして設定されます。これ以上メッセージがない場合、コマンド・ステータス・フィールドはNOMAILに設定されます。メッセージが見つかった場合、コマンド・ステータスはOKが返されます。*NEXTMESSAGE処理は、通常、別のGETコマンドの後に続いてメッセージの詳細(件名、送信元アドレス、添付ファイルなど)を取り出します。あるいは、SAVEコマンドの後に続いてメッセージの実際の本文を取得します。 値*FROMADDRESSは、JSMコマンド・メッセージ・パラメータのメール送信者のメール・アドレスを返します。あるいは、リストが指定されている場合は、作業リストのメール・アドレスを返します。 値*SUBJECTは、JSMコマンド・メッセージ・パラメータの現在のメッセージの件名を返します。 値*SENTDATEは、JSMコマンド・メッセージ・パラメータのメールの送信日を返します。 *ATTACHMENTSを指定した場合、現在のメールの各添付ファイルのファイル名を列挙するエントリーを含む作業リストが返されます。 値*UIDは、現在のメッセージの一意のIDを返します。 どのMIMEヘッダー・フィールドが返されるかを指定するには、*HEADERを指定してキーワードFIELDを使用します。 |
例
以下の例は、GETコマンドを使用してメール・サーバーからメールの詳細を取り出します。
RDML
* loop through all the messages
BEGIN_LOOP
* Get message
USE BUILTIN(JSM_COMMAND) WITH_ARGS('GET OBJECT(*NEXTMESSAGE)') TO_GET(#JSMSTS #JSMMSG)
IF COND('#JSMSTS *EQ NOMAIL')
LEAVE
ENDIF
* Get subject
USE BUILTIN(JSM_COMMAND) WITH_ARGS('GET OBJECT(*SUBJECT)') TO_GET(#JSMSTS #JSMMSG)
CHANGE FIELD(#SUBJECT) TO(#JSMMSG)
* Get from addresses
USE BUILTIN(JSM_COMMAND) WITH_ARGS('GET OBJECT(*FROMADDRESS) SERVICE_LIST(ADDRESS)') TO_GET(#JSMSTS #JSMMSG)
CHANGE FIELD(#FROM) TO(#JSMMSG)
* <<do something with email details>>
END_LOOP
RDMLX
* loop through all the messages
begin_loop
* Get the next message
use builtin(jsmx_command) with_args(#jsmhdle 'get object(*nextmessage)') to_get(#jsmsts #jsmmsg)
if (#jsmsts = NOMAIL)
leave
endif
* Get subject
use builtin(jsmx_command) with_args(#jsmhdle 'get object(*subject)') to_get(#jsmsts #jsmmsg)
#jsmsubject := #jsmmsg
* Get from address
use builtin(jsmx_command) with_args(#jsmhdle 'get object(*fromaddress)') to_get(#jsmsts #jsmmsg)
#jsmfrom := #jsmmsg
* <<do something with email details>>
end_loop
ILE RPG
この例では、現在のユーザーのメール・サーバーに保持されているメール・メッセージ数がJSMMSGフィールドに返されます。
c eval jsmcmd = 'get object(*messagecount)'
c callp p_jsmcmd(jsmcmd:jsmsts:jsmmsg)