メール本文の取得
このFP命令は、nTransferIDによって指定された番号のあらかじめ定義されたメール本文を読み出し、出力変数sBodyTextに本文を書き込みます。
入力
転送設定IDを設定します。
値:0~15
出力
あらかじめ定義されているメール本文を格納します。
異常終了時にTRUEをセットします。
エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。
この命令は、割り込みプログラム中で使用することはできません。
命令を実行する前に、FP_SMTP_SET_MODEまたはSMTPクライアントの設定ダイアログを使用してメール転送設定を指定する必要があります。
この命令は、SMTPクライアントの設定ダイアログで指定されたメール本文を読み出します。メール本文が指定されていない場合は、読み出しができず、sBodyTextにゼロが格納されます。
命令を実行する前に、FP_SMTP_SET_GROUPまたはSMTPクライアントの設定ダイアログを使用してグループおよびイベントメール設定を指定する必要があります。
命令を実行する前に、メールを送信するアクティブな要求があるかどうかについて、FP_CLIENT_STATUS_DUTを確認します。bIsTransferRequestedがTRUEのときに命令を実行すると、演算エラーが発生します。
この命令が正常に実行されると、システム変数sys_bIsCarryおよびsys_iEthernetConnectionErrorCodeがリセットされます。
エラーが発生した場合は、エラーコード番号のシステム変数sys_iEthernetConnectionErrorCodeを確認してください。
インデックス修飾時にエリアを超えたとき
パラメータに指定された値が許容範囲外の場合。
命令が割り込みプログラム内で実行された場合。
指定した転送設定用のメール転送要求フラグが「TRUE:転送要求済み」の場合。
命令FP_SMTP_SET_MODEまたはSMTPクライアントの設定ダイアログで設定されていないメール転送設定が指定された場合。
宛先グループ番号が命令FP_SMTP_SET_GROUPで定義されても、SMTPクライアントの設定ダイアログで指定されてもいない場合。
インデックス修飾時にエリアを超えたとき
パラメータに指定された値が許容範囲外の場合。
命令が割り込みプログラム内で実行された場合。
指定した転送設定用のメール転送要求フラグが「TRUE:転送要求済み」の場合。
命令FP_SMTP_SET_MODEまたはSMTPクライアントの設定ダイアログで設定されていないメール転送設定が指定された場合。
宛先グループ番号が命令FP_SMTP_SET_GROUPで定義されても、SMTPクライアントの設定ダイアログで指定されてもいない場合。
Ethernet初期化中に命令を実行した場合は、sys_iEthernetConnectionErrorCodeが「11:Ethernet初期化中」に設定されます。
POUヘッダには、このプログラムで使用するすべての入力変数と出力変数を宣言します。 POUヘッダは全プログラム言語で使用できます。
VAR
bRequest: BOOL:=FALSE;
bError: BOOL:=FALSE;
iID8: INT:=8;
sEmailText: STRING[32]:='Hello World!';
END_VAR
sys_bIsEthernetSMTPClientReadyがTRUEにセットされているときbRequestがFALSEからTRUEに変わると、命令が実行されます。
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 5 ;
NETWORK_BODY
B(B_CONTACT,,bRequest,4,1,6,3,R);
B(B_VARIN,,iID8,23,2,25,4,);
B(B_VAROUT,,bError,39,3,41,5,);
B(B_CONTACT,,sys_bIsEthernetSMTPClientReady,15,1,17,3,);
B(B_F,FP_SMTP_GET_EMAIL_TEXT!,,25,0,39,5,,?DEN?DnTransferID?AENO?CsBodyText?CbError);
B(B_VAROUT,,sEmailText,39,2,41,4,);
L(1,2,4,2);
L(6,2,15,2);
L(17,2,25,2);
L(1,0,1,5);
END_NETWORK_BODY
END_NET_WORK
END_BODY
If DF(bRequest) AND sys_bIsEthernetSMTPClientReady then
FP_SMTP_GET_EMAIL_TEXT(nTransferID := iID8,
sBodyText => sEmailText,
bError => bError);
END_If;