GET

LANSA Integrator

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)