4D Internet Commands v16

SMTP_Send

ホーム

 
4D Internet Commands v16
SMTP_Send

SMTP_Send 


 

SMTP_Send ( smtp_ID {; sessionParam} ) -> 戻り値 
引数   説明
smtp_ID  倍長整数 in メッセージ参照
sessionParam  倍長整数 in 1 = SSLを使用, 0または省略 = SSLを使用しない
戻り値  整数 in エラーコード

説明   

SMTP_Send コマンドは smtp_ID で参照されるメッセージを送信します。しかしメモリからデータをクリアすることはありません。

smtp_IDSMTP_New コマンドで作成された倍長整数のメッセージ参照です。

オプションのsessionParam引数を使用すると、接続にSSLプロトコルを使用することができます:

  • 1を渡すと、SMTPサーバーへの接続はSSLで行われます (同期モード)、
  • 0を渡すかこの引数を省略すると、接続は標準の非保護モードで行われます。

バージョン13.2以降、4D Internet CommandsはexplicitモードのSTARTTLS接続をサポートします。これはまず標準モードで接続を確立し、認証フェーズののちSSL/TLS接続にアップグレードできることを意味します。このメカニズムについては例題2も参照してください。

  • 最初の接続はデフォルトポート (25) でない非SSL/TLSポートで開始されなければなりません。初期SMTP接続に使用するポートを指定するため、SMTP_Send の前に IT_SetPort コマンドを呼び出さなければなりません。MS Exchange serverへの接続にはポート番号587を使用します。
  • 接続を認証させるためにSMTP_Authコマンドを呼び出さなければなりません。MS Exchange Serverと接続を行う場合、4DICはLOGIN認証モードのみをサポートします。このモードを渡すか、デフォルトモードのままにしてサーバーがサポートする最も安全なモードを利用します:
     $error:=SMTP_Auth($smtp_id;"user.name";"password";2) // LOGINモードで認証
     v$error:=SMTP_Auth($smtp_id;"user.name";"password") // サーバーによるLOGINモードの指定

この例題では、メッセージが作成され、スタティックな要素がループの外側で定義されています。そののち、[People] テーブルのレコード毎にメッセージがカスタマイズされ、送信されます。

 $error:=SMTP_New($smtp_id)
 $error:=SMTP_Host($smtp_id;"wkrp.com")
 $error:=SMTP_From($smtp_id;"herb_tarlick@wkrp.com")
 $error:=SMTP_ReplyTo($smtp_id;"bigguy@wkrp.com")
 $error:=SMTP_Subject($smtp_id;"Discounts on Ad Space!")
 FIRST RECORD([People])
 For($i;1;Records in selection([People]))
    If([People]Sales2Date>100000)
       $Body:=<>BigDiscText
    Else
       $Body:=<>SmlDiscText
    End if
    $Body:=Replace string($BoilerPlate;"<Salutation>";[People]Firstname)
    $error:=SMTP_To($smtp_id;[People]Email;1) `"To" ヘッダを新しい値で置き換える
    $error:=SMTP_Body($smtp_id;$Body)
    $error:=SMTP_Send($smtp_id)
    NEXT RECORD([People])
 End for
 $error:=SMTP_Clear($smtp_id)

この例題ではMS Exchange server に STARTTLSを使用してテストメッセージを送信します:

 $error:=SMTP_New($smtp_id)
 $error:=SMTP_Host($smtp_id;"exchange.4d.com")
 $error:=SMTP_From($smtp_id;"username@4d.com")
 $error:=SMTP_ReplyTo($smtp_id;"username@4d.com")
 $error:=SMTP_Subject($smtp_id;"Message test")
 $error:=SMTP_Auth($smtp_id;"username";"!%@password")
 $Body:="This is a test for messages sent through the Exchange, please do not reply"
 $error:=IT_SetPort(2;587) //標準のSTMPモード, Exchange Serverではポート587
 $error:=SMTP_To($smtp_id;"recipient@gmail.com")
 $error:=SMTP_Body($smtp_id;$Body)
 $error:=SMTP_Send($smtp_id;0) // アップグレードモード
 ALERT(String($error));



参照 

SMTP_New

 
プロパティ 

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

 
履歴 

初出: 4D Internet Commands 6.5
変更: 4D Internet Commands v12.1
変更: 4D v13.2

 
ARTICLE USAGE

4D Internet Commands ( 4D Internet Commands v16)