メインコンテンツまでスキップ
バージョン: 20 R7 BETA

SMTPTransporter

SMTPTransporter クラスを使って、SMTP接続の設定や、SMTP transporter オブジェクトを介したメールの送信をおこなうことができます。

SMTP Transporter オブジェクト

SMTP Transporter objects are instantiated with the SMTP New transporter command. これらは、次のプロパティや関数を持ちます:

.acceptUnsecureConnection : Boolean
暗号化されていない接続の確立が許可されてれば true
.authenticationMode : Text
メールサーバーのセッションを開くのに使用される認証モード
.bodyCharset : Text
メール本文で使用される文字セットとエンコーディング
.checkConnection() : Object
transporter オブジェクトが保存する情報を使用して接続をチェックします
.connectionTimeOut : Integer
サーバー接続の確立までに待機する最長時間 (秒単位)
.headerCharset : Text
メールヘッダーで使用される文字セットとエンコーディング
.host : Text
ホストサーバーの名前または IPアドレス
.keepAlive : Boolean
transporter オブジェクトが抹消されるまで、SMTP接続が維持されなければならない場合に true
.logFile : Text
メール接続に対して定義された拡張ログファイル (あれば) へのフルパス
.port : Integer
メール通信に使用されるポート番号
.send( mail : Object ) : Object
mail オブジェクト 引数が指定するメールメッセージを、transporter オブジェクトが定義する SMTPサーバーへと送信し、ステータスオブジェクトを返します
.sendTimeOut : Integer
.send() 呼び出し時のタイムアウト時間 (秒単位)
.user : Text
メールサーバーでの認証に使用されたユーザー名

4D.SMTPTransporter.new()

4D.SMTPTransporter.new( server : Object ) : 4D.SMTPTransporter

引数説明
serverオブジェクト->メールサーバー情報
戻り値4D.SMTPTransporter<-SMTP transporter object

説明

4D.SMTPTransporter.new() 関数は、 新規の 4D.SMTPTransporter型オブジェクトを作成して返します。 It is identical to the SMTP New transporter command (shortcut).

.acceptUnsecureConnection

履歴
リリース内容
17 R4追加

.acceptUnsecureConnection : Boolean

説明

.acceptUnsecureConnection プロパティは、暗号化された接続が不可能な場合に、 暗号化されていない接続の確立が許可されてれば true を格納します。

暗号化されていない接続が許可されていない場合には false が格納されており、その場合に暗号化された接続が不可能な場合にはエラーが返されます。

使用可能なセキュアなポートは次のとおりです:

  • SMTP

    • 465: SMTPS
    • 587 または 25: STARTTLS アップグレードがされた SMTP (サーバーがサポートしていれば)
  • IMAP

    • 143: IMAP 非暗号化ポート
    • 993: STARTTLS アップグレードがされた IMAP (サーバーがサポートしていれば)
  • POP3

    • 110: POP3 非暗号化ポート
    • 995: STARTTLS アップグレードがされた POP3 (サーバーがサポートしていれば)

.authenticationMode

履歴
リリース内容
17 R4追加

.authenticationMode : Text

説明

.authenticationMode プロパティは、メールサーバーのセッションを開くのに使用される認証モードを格納します。

デフォルトでは、サーバーによってサポートされている最も安全なモードが使用されます。

とりうる値:

定数説明
CRAM-MD5SMTP authentication CRAM MD5CRAM-MD5 プロトコルを使用した認証
LOGINSMTP authentication loginLOGIN プロトコルを使用した認証
OAUTH2SMTP authentication OAUTH2OAuth2 プロトコルを使用した認証
PLAINSMTP authentication plainPLAIN プロトコルを使用した認証

.bodyCharset

履歴
リリース内容
18UTF8 base64 をサポート
17 R5追加

.bodyCharset : Text

説明

.bodyCharset プロパティは、 メール本文で使用される文字セットとエンコーディングを格納します。

とりうる値:

定数説明
mail mode ISO2022JPUS-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 ISO88591ISO-8859-1
  • headerCharset: ISO-8859-1 & Quoted-printable
  • bodyCharset: ISO-8859-1 & 8-bit
mail mode UTF8US-ASCII_UTF8_QPheaderCharset & bodyCharset: 可能なら US-ASCII、それが不可なら UTF-8 & Quoted-printable (デフォルト値)
mail mode UTF8 in base64US-ASCII_UTF8_B64headerCharset & bodyCharset: 可能な場合は US-ASCII、それ以外は UTF-8 & base64

.checkConnection()

履歴
リリース内容
17 R4追加

.checkConnection() : Object

引数説明
戻り値オブジェクト<-transporter オブジェクト接続のステータス

説明

.checkConnection() 関数は、transporter オブジェクトが保存する情報を使用して接続をチェックします。必要なら再接続をし、そのステータスを返します。 この関数を使用して、ユーザーから提供された値が有効かどうかを検証することができます。

返されるオブジェクト

この関数はメールサーバーにリクエストを送信し、メールステータスを表すオブジェクトを返します。 このオブジェクトには、次のプロパティが格納されることがあります:

プロパティ説明
successbooleanチェックが成功した場合には true、それ以外は false
statusnumber(SMTPのみ) メールサーバーから返されたコード (メール処理に関係ない問題の場合には 0)
statusTextテキストメールサーバーから返されたステータスメッセージ、または 4Dエラースタック内に返された最後のエラー
errorscollection4Dエラースタック (メールサーバーレスポンスが受信できた場合には返されません)
[ ].errCodenumber4Dエラーコード
[ ].messageテキスト4Dエラーの詳細
[ ].componentSignatureテキストエラーを返した内部コンポーネントの署名

SMTPステータスコードについての詳細は こちらのページ を参照ください。

例題

 var $pw : Text
var $options : Object
var $transporter : 4D.SMTPTransporter
$options:=New object

$pw:=Request("パスワードを入力してください:")
$options.host:="smtp.gmail.com"

$options.user:="test@gmail.com"
$options.password:=$pw

$transporter:=SMTP New transporter($options)

$status:=$transporter.checkConnection()
If($status.success=True)
ALERT("SMTP接続チェックに成功しました。")
Else
ALERT("エラー # "+String($status.status)+", "+$status.statusText)
End if

.connectionTimeOut

履歴
リリース内容
17 R5追加

.connectionTimeOut : Integer

説明

.connectionTimeOut プロパティは、サーバー接続の確立までに待機する最長時間 (秒単位)を格納します。 SMTP New transporterPOP3 New transporterIMAP New transporter のコマンドで transporter オブジェクトを作成する際に使用される server オブジェクトにおいて、 このプロパティが指定されなかった場合のデフォルトは 30 です。

.headerCharset

履歴
リリース内容
17 R5追加

.headerCharset : Text

説明

.headerCharset プロパティは、メールヘッダーで使用される文字セットとエンコーディングを格納します。 ヘッダーにはメールの次の要素を含みます:

  • 件名
  • 添付ファイル名
  • メール名

とりうる値:

定数説明
mail mode ISO2022JPUS-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 ISO88591ISO-8859-1
  • headerCharset: ISO-8859-1 & Quoted-printable
  • bodyCharset: ISO-8859-1 & 8-bit
mail mode UTF8US-ASCII_UTF8_QPheaderCharset & bodyCharset: 可能なら US-ASCII、それが不可なら UTF-8 & Quoted-printable (デフォルト値)
mail mode UTF8 in base64US-ASCII_UTF8_B64headerCharset & bodyCharset: 可能な場合は US-ASCII、それ以外は UTF-8 & base64

.host

履歴
リリース内容
17 R5追加

.host : Text

説明

.host プロパティは、ホストサーバーの名前または IPアドレスを格納します。 この情報はメール通信 (SMTP、POP3、IMAP) に使用されます。

.keepAlive

履歴
リリース内容
17 R4追加

.keepAlive : Boolean

説明

.keepAlive プロパティは、transporter オブジェクトが抹消されるまで、SMTP接続が維持されなければならない場合に true、それ以外は false を格納します。 SMTP New transporter コマンドで transporter オブジェクトを作成する際に使用する server オブジェクトにおいて、 keepAlive プロパティが指定されなかった場合のデフォルトは true です。

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

  • .keepAlive プロパティが true (デフォルト) の場合には、transporter オブジェクトが消去された時。
  • .keepAlive プロパティが false の場合には、各 .send( ) 関数が実行された後。

.logFile

履歴
リリース内容
17 R5追加

.logFile : Text

説明

.logFile プロパティは、 メール接続に対して定義された拡張ログファイル (あれば) へのフルパスを格納します。 パスは、カレント Logs フォルダーを基準とした相対パス、あるいは絶対パスを指定できます。

SET DATABASE PARAMETER コマンドで有効化される通常のログファイルとは異なり、拡張ログファイルはすべての送信されたメールの MIMEコンテンツを保存し、サイズ制限がありません。 拡張ログファイルの詳細については、以下の章をそれぞれ参照ください:

.port

履歴
リリース内容
17 R4追加

.port : Integer

説明

.port プロパティは、 メール通信に使用されるポート番号を格納します。 SMTP New transporterPOP3 New transporterIMAP New transporter のコマンドで transporter オブジェクトを作成する際に使用される server オブジェクトにおいて、 このプロパティが指定されなかった場合に使用されるポートは次のとおりです:

  • SMTP - 587
  • POP3 - 995
  • IMAP - 993

.send()

履歴
リリース内容
17 R5MIMEコンテンツをサポート
17 R4追加

.send( mail : Object ) : Object

引数説明
mailオブジェクト->送信する メール
戻り値オブジェクト<-SMTP ステータス

説明

.send() 関数は、mail オブジェクト 引数が指定するメールメッセージを、transporter オブジェクトが定義する SMTPサーバーへと送信し、ステータスオブジェクトを返します。

transporter オブジェクトは、事前に SMTP New transporter コマンドによって作成されている必要があります。

この関数は、SMTP接続が事前に開かれていなかった場合には、それを作成します。 transporter オブジェクトの .keepAlive プロパティが false であった場合、SMTP接続は .send() 実行後に自動的に閉じられます。それ以外の場合には、接続は transporter オブジェクトが消去されるまで開いたままになります。 詳細については、SMTP New transporter コマンドの説明を参照してください。

mailには、送信する有効な Email オブジェクト を渡します。 メールには送信元 (メールがどこから送られるか) と送信先 (一名以上の受信者) プロパティが含まれている必要がありますが、その他のプロパティは任意です。

返されるオブジェクト

この関数は、SMTP ステータスを表すオブジェクトを返します。 このオブジェクトには、次のプロパティが格納されることがあります:

プロパティ説明
successboolean送信に成功した場合は true、それ以外は false
statusnumberSMTPサーバーから返されたコード (メール処理に関係ない問題の場合には 0)
statusTextテキストSMTPから返されるステータスメッセージ

SMTP 処理とは関係のない問題 (例: 必須プロパティがメールにない) が発生した場合、4D はエラーを生成します。 これは、ON ERR CALL コマンドでインストールしたメソッドでインターセプトできます。 Use the Last errors command for information about the error.

この場合、結果のステータスオブジェクトには以下の値が含まれます:

プロパティ
successfalse
status0
statusText"Failed to send email"

.sendTimeOut

履歴
リリース内容
17 R4追加

.sendTimeOut : Integer

説明

.sendTimeOut プロパティは、.send() 呼び出し時のタイムアウト時間 (秒単位) を格納します。 .sendTimeOut プロパティが server オブジェクトによって設定されていない場合は、デフォルトで 100 という値が使用されます。

.user

履歴
リリース内容
17 R4追加

.user : Text

説明

.user プロパティは、メールサーバーでの認証に使用されたユーザー名を格納します。