4D Internet Commands v14

SMTP_Body

ホーム

 
4D Internet Commands v14
SMTP_Body

SMTP_Body 


 

SMTP_Body ( smtp_ID ; msgBody {; option} ) -> 戻り値 
引数   説明
smtp_ID  倍長整数 in メッセージ参照
msgBody  テキスト in メッセージ本文
option  整数 in 0 = Replace (if msgBody not empty), 1 = Delete, 2 = Append, 4 = HTML text (plain text by default)
戻り値  整数 in エラーコード

説明   

SMTP_Body コマンドは、smtp_IDで指定されるメッセージのボディ部に、msgBodyのテキストを設定します。

smtp_IDSMTP_New コマンドで作成されるメッセージ参照です。

msgBody はメッセージのボディを含むテキスト値です。msgBodyのサイズは32Kに制限されます。しかしこれはメールメッセージに32Kの制限があるということではありません。32K以上のボディを含むメッセージを送信するには、 option 引数の追加フラグを使用します (下記参照)。実際の制限は利用可能なメモリによります。

注: デフォルトでは、メッセージの件名と本文はUTF-8でエンコードされています。これにより、送信された文字はほぼ全てのe-メールクライアントで正常に 解釈されます。特定の文字コードを使用したい場合は、 SMTP_SetPrefsSMTP_Charset コマンドを参照して下さい。

option は複数のボディの連結や、メッセージのフォーマット(テキストかHTML)を修正するために使用されます:

  • 0を指定すると、以前の値を与えられた文字列で置き換えて、ボディに新しい値を設定します。(空の文字列をmsgBodyに指定すると、以前のボディが保持されます。)
  • 1を指定すると、以前の値を与えられた文字列で置き換えて、ボディに新しい値を設定します。(空の文字列をmsgBodyに指定すると、ボディが削除されます。)
  • 2を指定すると、 msgBody によりボディに設定されていた値に、テキストが追加(連結)されます。
  • 4を指定すると、 msgBody の中身が HTML であることを意味します(デフォルトでは、 msgBody は標準テキストとして送信されます)。
    option が省略された場合は、デフォルトで0が使用されます。

メッセージをHTMLで送信するのとテキストの中身を置き換えるのとを組み合わせる時は、二つの値を足し合わせて下さい。例えば、この場合は option に 1+4を渡す事でボディの置き換えとHTMLでの送信が可能になります。

例題  

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

Note: この Case of の特別な使用法についてはAppendix A, プログラムTipsを参照してください。

以下は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

 
プロパティ 

プロダクト: 4D Internet Commands
テーマ: IC メール送信
番号: 88973

 
履歴 

New
初出: 4D Internet Commands 6.5
変更: 4D Internet Commands v14

 
参照 

SMTP_Charset
SMTP_New
SMTP_SetPrefs

 
ARTICLE USAGE

4D Internet Commands ( 4D Internet Commands v14 R2)
4D Internet Commands ( 4D Internet Commands v14)
4D Internet Commands ( 4D Internet Commands v14 R3)
4D Internet Commands ( 4D Internet Commands v14 R4)

Inherited from : SMTP_Body ( 4D Internet Commands v11.4)