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.