4D v18

SMTP New transporter

ホーム

 
4D v18
SMTP New transporter

SMTP New transporter 


 

SMTP New transporter ( server ) -> 戻り値 
引数   説明
server  Object in メールサーバー情報
戻り値  Object in SMTP transporter オブジェクト

説明   

SMTP New transporter コマンドは、server 引数で設定された値を元に新規SMTP 接続を設定し、新しいtransporter オブジェクトを返します。返されたtransporter オブジェクトは一般的にメールの送信などに使用されます。

server 引数には、以下のプロパティを持つオブジェクトを渡します:

プロパティ詳細
hostテキストSMTP 通信に使用するホストサーバーの名前あるいはIP アドレス。
port数値(任意) SMTP 通信に使用するポート番号。デフォルト値=587
keepAliveブール(任意) True であれば、transporter オブジェクトが消去されるまで接続をつないだままに保ちます。デフォルト値=True
connectionTimeOut数値(任意) サーバーとの接続が確立されるまで待つ時間の最大値(秒単位)。デフォルト値=30
sendTimeOut数値(任意) タイムアウトの前にsendMail の呼び出しを待つ時間の最大値(秒単位)。デフォルト値=100
authenticationModeテキストSMTP サーバー上でのセッションを開くのに使用する認証モード(*)。取りうる値:
定数 コメント
SMTP authentication CRAM MD5 CRAM-MD5 CRAM-MD5 プロトコルを使用したSMTP 認証
SMTP authentication login LOGIN LOGIN プロトコルを使用したSMTP 認証
SMTP authentication plain PLAIN PLAIN プロトコルを使用したSMTP 認証
userテキストサーバー上で認証をするユーザー名
passwordテキストサーバー上で認証をするユーザーパスワード
acceptUnsecureConnectionブールTrue であれば、暗号化された接続が不可能だった場合に暗号化されてない接続を4D に許可させます(**)。False であれば、暗号化された接続が不可能だった時点でエラーが返されます。デフォルト値=False
logFileテキスト(任意) 拡張されたログファイル用のファイルパス(***)。(カレントのLogs フォルダに対する)相対パス、絶対パスのどちらも指定可能です。
headerCharsetテキスト(任意) eメールに使用される文字セットとエンコーディングです。使用箇所は次の通りです: 主題、添付ファイル名、eメール名属性。取りうる値:
定数 コメント
mail mode ISO2022JP US-ASCII_ISO-2022-JP_UTF8_QP
  • headerCharset: 可能ならUS-ASCII 、次に可能ならJapanese (ISO-2022-JP) & Quoted-printable 、それも不可なら UTF-8 & Quoted-printable
  • bodyCharset: 可能ならUS-ASCII、次に可能ならJapanese (ISO-2022-JP) & 7-bit、それも不可なら UTF-8 & Quoted-printable
mail mode ISO88591 ISO-8859-1
  • headerCharset: ISO-8859-1 & Quoted-printable
  • bodyCharset: ISO-8859-1 & 8-bit
mail mode UTF8 US-ASCII_UTF8_QP

headerCharset & bodyCharset: 可能ならUS-ASCII、それが不可ならUTF-8 & Quoted-printable (デフォルト値)

mail mode UTF8 in base64 US-ASCII_UTF8_B64

headerCharset & bodyCharset: 可能な場合は US-ASCII、それ以外は UTF-8 & base64

bodyCharsetテキスト(任意) eメールのhtmlとテキスト本文のコンテンツに使用される文字セットとエンコーディングです。取りうる値: headerCharset と同じ(上記参照)

(*) もしauthenticationMode がnull あるいはundefinedだった場合、サーバーによってサポートされる最も安全な認証モードが使用されます。

(**) 利用可能な安全なSMTP ポートは以下の通りです:

  • 465: SMTPS
  • 587 または 25: サーバーによってサポートされていれば、STARTTLS アップグレードがされたSMTP

(***) (コマンドで有効化される)通常のログファイルとは異なり、拡張されたログファイルには送信された全てのメールのMIME コンテンツが保存され、ファイルサイズの上限はありません。詳細な情報については、4DSMTPLog.txt の章を参照してください。

 

返されたオブジェクト

返されたtransporter オブジェクトには、以下の読み込みのみのプロパティとメソッドが格納されます:

プロパティ詳細
transporter.hostテキストSMTP 通信に使用されているホストサーバーの名前あるいはIP アドレス。
transporter.port数値SMTP 通信に使用されているポート番号。
transporter.keepAliveブールTrue であれば、transporter オブジェクトが消去されるまで接続をつないだままに保ちます。
transporter.connectionTimeOut数値サーバーとの接続が確立されるまで待つ時間の最大値(秒単位)。
transporter.sendTimeOut数値タイムアウトの前にsendMail の呼び出しを待つ時間の最大値(秒単位)。
transporter.acceptUnsecureConnectionブール暗号化された接続を確立するのが不可能だった場合に4D に暗号化されてない接続を確立することが許可されていればTrue。許可されていない場合にはFalse となり、その場合、暗号化された接続が不可能だった場合にはエラーが返されます。
transporter.authenticationModeテキストSMTP サーバー上でセッションを開くために実際に使用されている認証モード。
transporter.userテキストサーバー上で認証をするユーザー名
transporter.logFileテキストログファイル(あれば)のフルパス
transporter.headerCharsetテキストメールのヘッダーと名前部分に使用される文字セットとエンコーディング
transporter.bodyCharsetテキストメールの本文に使用される文字セットとエンコーディング

 

メソッド詳細
SMTP_transporter.send( )メッセージを送信する。
SMTP_transporter.checkConnection( )認証をチェックする。

 

このコマンドは、SMTP サーバーとの接続を開くわけではないことに注意してください。SMTP 接続は、実際にはSMTP_transporter.send( ) メソッドが実行された時に開かれます。

SMTP 接続は、以下の場合に自動的に閉じられます:

  • keepAlive プロパティがTrue (デフォルト)の場合には、transporter オブジェクトが消去された時。
  • keepAlive プロパティがFalse の場合には、各SMTP_transporter.send( ) メソッドが実行された後。

例題  

 $server:=New object
 $server.host:="smtp.gmail.com" //必須
 $server.port:=465
 $server.user:="4D@gmail.com"
 $server.password:="XXXX"
 $server.logFile:="LogTest.txt" //Logs フォルダに保存する拡張されたログ
 
 $transporter:=SMTP New transporter($server)
 
 $email:=New object
 $email.subject:="my first mail "
 $email.from:="4d@gmail.com"
 $email.to:="4d@4d.com;test@4d.com"
 $email.textBody:="Hello World"
 $email.htmlBody:="<h1>Hello World</h1><h4>'Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit...'</h4>\
 <p>There are many variations of passages of Lorem Ipsum available."\
 +"The generated Lorem Ipsum is therefore always free from repetition, injected humour, or non-characteristic words etc.</p>"
 
 $status:=$transporter.send($email)
 If(Not($status.success))
    ALERT("メールを送信中にエラーが発生しました: "+$status.statusText)
 End if

 



参照 

MAIL Convert to MIME
SMTP_transporter.checkConnection( )
SMTP_transporter.send( )
transporter.acceptUnsecureConnection
transporter.authenticationMode
transporter.connectionTimeOut
transporter.host
transporter.keepAlive
transporter.logFile
transporter.port
transporter.sendTimeOut
transporter.user

 
プロパティ 

プロダクト: 4D
テーマ: メール
番号: 1608

This command can be run in preemptive processes

 
履歴 

New
初出: 4D v17 R4
変更: 4D v17 R5
変更: 4D v18

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v18)