version 6.5
SMTP_Body (smtp_ID; msgBody{; deleteOption}) --> 整数
引数 | タイプ | 説明 | |
smtp_ID | 倍長整数 | --> | メッセージ参照 |
msgBody | テキスト | --> | メッセージ本文 |
deleteOption | 整数 | --> | 0 = 置き換え (msgBodyが空でない場合), |
1 = 削除, 2 = 追加 | |||
戻り値 | 整数 | エラーコード |
説明
SMTP_Body コマンドは、smtp_IDで指定されるメッセージのボディ部に、msgBodyのテキストを設定します。
smtp_ID はSMTP_New コマンドで作成されるメッセージ参照です。
msgBody はメッセージのボディを含むテキスト値です。msgBodyのサイズは32Kに制限されます。しかしこれはメールメッセージに32Kの制限があるということではありません。32K以上のボディを含むメッセージを送信するには、deleteOption 引数の追加フラグを使用します (下記参照)。実際の制限は利用可能なメモリによります。
警告: 通常、メッセージボディに (e, o, etc.のような) アクセント文字を含めるべきではありません。これらの文字を使用する際は、SMTP_SetPrefs や SMTP_Charset コマンドの説明を参照してください。
deleteOption はボディを置き換えるか削除するか指定する整数値です:
・0を指定すると、以前の値を置き換えて、ボディに新しい値を設定します。(空の文字列をmsgBodyに指定すると、以前のボディが保持されます。)
・1を指定すると、以前の値を置き換えて、ボディに新しい値を設定します。(空の文字列をmsgBodyに指定すると、ボディが削除されます。)
・2を指定すると、SMTP_Bodyによりボディに設定されていた値に、テキストが追加されます。
deleteOption はオプションの引数で、指定しない場合の値はデフォルトで0です。
例題
SMTPの完全な例題は以下のとおりです:
C_LONGINT($SMTP_ID) C_BOOLEAN($SentOK;$OK) $SentOK:=False `すべのコマンドの実行に成功したかを示すフラグ Case of : (Not(ERRCHECK ("SMTP_New";SMTP_New ($SMTP_ID)))) : (Not(ERRCHECK ("SMTP_Host";SMTP_Host ($SMTP_ID;<>pref_Server)))) : (Not(ERRCHECK ("SMTP_From";SMTP_From ($SMTP_ID;vFrom)))) : (Not(ERRCHECK ("SMTP_To";SMTP_To ($SMTP_ID;vTo)))) : (Not(ERRCHECK ("SMTP_Cc";SMTP_Cc ($SMTP_ID;vCC)))) : (Not(ERRCHECK ("SMTP_Bcc";SMTP_Bcc ($SMTP_ID;vBcc)))) : (Not(ERRCHECK ("SMTP_Subject";SMTP_Subject ($SMTP_ID;vSubject)))) : (Not(ERRCHECK ("SMTP_Comments";SMTP_Comments ($SMTP_ID;"Sent via 4D")))) : (Not(ERRCHECK ("SMTP_AddHeader";SMTP_AddHeader ($SMTP_ID;"X-4Ddemo:";<>VERSION)))) : (Not(ERRCHECK ("SMTP_Body";SMTP_Body ($SMTP_ID;vMessage)))) : (Not(ERRCHECK ("SMTP_Send";SMTP_Send ($SMTP_ID)))) Else $SentOK:=True `メッセージの構築および送信に成功した End case If ($SMTP_ID#0) `メッセージが作成されいれば、クリアする $OK:=ERRCHECK ("SMTP_Clear";SMTP_Clear ($SMTP_ID)) End if
以下はERRCHECKメソッドのコードです。このメソッドは二つの引数をとります。第一引数はコマンド名 ($Command) で、第二引数は引数に渡されたSMTPコマンドが返すエラー値です。このメソッドからはエラー値が0の場合にFalseが、それ以外の場合はTrueが返されます。すなわちSMTPコマンドの実行に成功すれば、エラー値が0なので返り値がFalseとなり、次のCaseテストに進みます。SMTPコマンドの実行に失敗すると返り値がTrueとなるため、その時点でCaseのテストが終了します。
C_TEXT(vErrorMsg) $Command:=$1 $Error:=$2 $Result:=True If ($Error#0) $Result:=False If (<>SHOWERRORS) `エラーメッセージを表示する場合 vErrorMsg:=IT_ErrorText ($Error) ALERT("ERROR ---"+Char(13)+"Command: "+$Command+Char(13)+"Error Code:"+String($Error)+Char(13)+"Description: "+vErrorMsg) End if End if $0:=$Result
参照
SMTP_Charset, SMTP_New, SMTP_SetPrefs.