SMTPTransporter
SMTPTransporter
クラスを使って、SMTP接続の設定や、SMTP transporter オブジェクトを介したメールの送信をおこ なうことができます。
SMTP Transporter オブジェクト
SMTP Transporter オブジェクトは SMTP New transporter コマンドによってインスタンス化されます。 これらは、次のプロパティや関数を持ちます:
.acceptUnsecureConnection : Boolean 暗号化されていない接続の確立が許可されてれば true |
.authenticationMode : Text メールサーバーのセッションを開くのに使用される認証モード |
.bodyCharset : Text メール本文で使用される文字セットとエンコーディング |
.checkConnection() : Objecttransporter オブジェクトが保存する情報を使用して接続をチェックします |
.connectionTimeOut : Integer サーバー接続の確立までに待機する最長時間 (秒単位) |
.headerCharset : Text メールヘッダーで使用される文字セットとエンコーディング |
.host : Text ホストサーバーの名前または IPアドレス |
.keepAlive : Booleantransporter オブジェクトが抹消されるまで、SMTP接続が維持されなければならない場合に true |
.logFile : Text メール接続に対して定義された拡張ログファイル (あれば) へのフルパス |
.port : Integer メール通信に使用されるポート番号 |
.send( mail : Object ) : Object mail オブジェクト 引数が指定するメールメッセージを、 transporter オブジェクトが定義する SMTPサーバーへと送信し、ステータスオブジェクトを返します |
.sendTimeOut : Integer.send() 呼び出し時のタイムアウト時間 (秒単位) |
.user : Text メールサーバーでの認証に使用されたユーザー名 |
SMTP New transporter
履歴
リリース | 内容 |
---|---|
18 | logFile プロパティを追加 |
17 R5 | bodyCharset と headerCharset プロパティを追加 |
17 R4 | 追加 |
SMTP New transporter( server : Object ) : 4D.SMTPTransporter
引数 | 型 | 説明 | |
---|---|---|---|
server | Object | -> | メールサーバー情報 |
戻り値 | 4D.SMTPTransporter | <- | SMTP transporter object |
説明
SMTP New transporter
コマンドは、server 引数の指定に応じて 新規の SMTP接続を設定します 。 戻り値は、新しい SMTP transporter オブジェクトです。 返された transporter オブジェクトは、通常メールの送信に使用されます。
このコマンドは SMTPサーバーとの接続を開始しません。 SMTP接続は、実際には
.send()
関数が実行された時に開かれます。SMTP接続は、以下の場合に自動的に閉じられます:
.keepAlive
プロパティが true (デフォルト) の場合には、transporter
オブジェクトが消去された時。.keepAlive
プロパティが false の場合には、各.send( )
関数が実行された後。
server 引数として、以下のプロパティを持つオブジェクトを渡します:
server | デフォルト値 (省略時) |
---|---|
.acceptUnsecureConnection : Boolean 暗号化されていない接続の確立が許可されてれば true | false |
.accessTokenOAuth2: Text .accessTokenOAuth2: Object OAuth2 認証の資格情報を表すテキスト文字列またはトークンオブジェクト。 authenticationMode が OAUTH2 の場合のみ使用されます。 accessTokenOAuth2 が使用されているが authenticationMode が省略されていた場合、OAuth2 プロトコルが使用されます (サーバーで許可されていれば)。 SMTP transporter オブジェクトには返されません。 | なし |
.authenticationMode : Text メールサーバーのセッションを開くのに使用される認証モード | サーバーがサポートするもっともセキュアな認証モードが使用 されます |
.bodyCharset : Text メール本文で使用される文字セットとエンコーディング | mail mode UTF8 (US-ASCII_UTF8_QP) |
.connectionTimeOut : Integer サーバー接続の確立までに待機する最長時間 (秒単位) | 30 |
.headerCharset : Text メールヘッダーで使用される文字セットとエンコーディング | mail mode UTF8 (US-ASCII_UTF8_QP) |
.host : Text ホストサーバーの名前または IPアドレス | mandatory |
.keepAlive : Booleantransporter オブジェクトが抹消されるまで、SMTP接続が維持されなければならない場合に true | true |
.logFile : Text メール接続に対して定義された拡張ログファイル (あれば) へのフルパス | なし |
password : Text サーバーとの認証のためのユーザーパスワード。 SMTP transporter オブジェクトには返されません。 | なし |
.port : Integer メール通信に使用されるポート番号 | 587 |
.sendTimeOut : Integer.send() 呼び出し時のタイムアウト時間 (秒単位) | 100 |
.user : Text メールサーバーでの認証に使用されたユーザー名 | なし |
戻り値
この関数は、SMTP transporter オブジェクト を返します。 返されるプロパティはすべて 読み取り専用 です。
例題
$server:=New object
$server.host:="smtp.gmail.com" // 必須
$server.port:=465
$server.user:="4D@gmail.com"
$server.password:="XXXX"
$server.logFile:="LogTest.txt" // Logsフォルダーに保存する拡張されたログ
var $transporter : 4D.SMTPTransporter
$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.message)
End if
4D.SMTPTransporter.new()
4D.SMTPTransporter.new( server : Object ) : 4D.SMTPTransporter
引数 | 型 | 説明 | |
---|---|---|---|
server | Object | -> | メールサーバー情報 |
戻り値 | 4D.SMTPTransporter | <- | SMTP transporter object |
説明
4D.SMTPTransporter.new()
関数は、 新規の 4D.SMTPTransporter
型オブジェクトを作成して返します。 この関数の機能は、SMTP New transporter
コマンドと同一です。
.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-MD5 | SMTP authentication CRAM MD5 | CRAM-MD5 プロトコルを使用した認証 |
LOGIN | SMTP authentication login | LOGIN プロトコルを使用した認証 |
OAUTH2 | SMTP authentication OAUTH2 | OAuth2 プロトコルを使用した認証 |
PLAIN | SMTP authentication plain | PLAIN プロトコルを使用した認証 |
.bodyCharset
履歴
リリース | 内容 |
---|---|
18 | UTF8 base64 をサポート |
17 R5 | 追加 |
.bodyCharset : Text
説明
.bodyCharset
プロパティは、 メール本文で使用される文字セットとエンコーディングを格納します。
とりうる値:
定数 | 値 | 説明 |
---|---|---|
mail mode ISO2022JP | US-ASCII_ISO-2022-JP_UTF8_QP |
|
mail mode ISO88591 | ISO-8859-1 |
|
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 |
.checkConnection()
履歴
リリース | 内容 |
---|---|
17 R4 | 追加 |
.checkConnection() : Object
引数 | 型 | 説明 | |
---|---|---|---|
戻り値 | Object | <- | transporter オブジェクト接続のステータス |
説明
.checkConnection()
関数は、transporter
オブジェクトが保存する情報を使用して接続をチェックしま す。必要なら再接続をし、そのステータスを返します。 この関数を使用して、ユーザーから提供された値が有効かどうかを検証することができます。
返されるオブジェクト
この関数はメールサーバーにリクエストを送信し、メールステータスを表すオブジェクトを返します。 このオブジェクトには、次のプロパティが格納されることがあります:
プロパティ | 型 | 説明 | |
---|---|---|---|
success | boolean | チェックが成功した場合には true、それ以外は false | |
status | number | (SMTPのみ) メールサーバーから返されたコード (メール処理に関係ない問題の場合には 0) | |
statusText | text | メールサーバーから返されたステータスメッセージ、または 4Dエラースタック内に返された最後のエラー | |
errors | collection | 4Dエラースタック (メールサーバーレスポンスが受信できた場合には返されません) | |
[ ].errCode | number | 4Dエラーコード | |
[ ].message | text | 4Dエラーの詳細 | |
[ ].componentSignature | text | エラーを返した内部コンポーネントの署名 |
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 transporter
や POP3 New transporter
、 IMAP New transporter
のコマンドで transporter
オブジェクトを作成する際に使用される server
オブジェクトにおいて、 このプロパティが指定されなかった場合のデフォルトは 30 です。
.headerCharset
履歴
リリース | 内容 |
---|---|
17 R5 | 追加 |
.headerCharset : Text
説明
.headerCharset
プロパティは、メールヘッダーで使用される文字セットとエンコーディングを格納します。 ヘッダーにはメールの次の要素を含み ます:
- 件名
- 添付ファイル名
- メール名
とりうる値:
定数 | 値 | 説明 |
---|---|---|
mail mode ISO2022JP | US-ASCII_ISO-2022-JP_UTF8_QP |
|
mail mode ISO88591 | ISO-8859-1 |
|
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 |
.host
履歴
リリース | 内容 |
---|---|
17 R5 | 追加 |
.host : Text