Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)


8.2.1 SMTPサーバに接続するためのセッションプロパティ

ここでは,SMTPプロバイダおよびSMTPSプロバイダ独自のセッションプロパティについて説明します。

SMTPプロバイダおよびSMTPSプロバイダ独自のセッションプロパティの一覧を次の表に示します。

表8‒2 SMTPプロバイダおよびSMTPSプロバイダ独自のセッションプロパティの一覧

項番

プロパティ

デフォルト値

有効な指定値

無効な値を指定した場合の動作

1

mail.smtp.allow8bitmime

false

true,false

(大文字と小文字の区別はなし)

メールサーバへの送信処理でメッセージKDJE59100-Wを出力します。

値は,デフォルト値を使用します。

2

mail.smtp.auth

false

true,false

(大文字と小文字の区別はなし)

メールサーバとの接続処理でメッセージKDJE59100-Wを出力します。

値は,デフォルト値を使用します。

3

mail.smtp.connectiontimeout

0

(無限待ち)

0〜2147483647

(単位:ミリ秒)

メールサーバとの接続処理でメッセージKDJE59100-Wを出力します。

値は,デフォルト値を使用します。

4

mail.smtp.dsn.notify

なし

  • SUCCESS,FAILURE,DELAYのうち一つ,または複数を「,」で区切って指定

  • NEVER

指定した値をそのまま使用します。

メールサーバ側で不正と見なした場合は,RCPTコマンドが失敗し,メール送信処理が中断します。

メールサーバの処理は,メールサーバに依存します。

5

mail.smtp.dsn.ret

なし

FULL,HDRS

指定した値をそのまま使用します。

メールサーバ側で不正と見なした場合は,MAILコマンドが失敗し,メール送信処理が中断します。

メールサーバの処理は,メールサーバに依存します。

6

mail.smtp.ehlo

true

true,false

(大文字と小文字の区別はなし)

メールサーバとの接続処理でメッセージKDJE59100-Wを出力します。

値は,デフォルト値を使用します。

7

mail.smtp.from

<mail.form>に指定した値

文字列

JavaMail,またはメールサーバから例外が返る可能性があります。メールサーバがどのような場合に例外を返すかは,メールサーバに依存します。

8

mail.smtp.localhost

java.net.InetAddress.getLocalHost().getHostName()の戻り値

文字列

指定した値をそのまま使用します。

9

mail.smtp.noop.strict

true

true,false

(大文字と小文字の区別はなし)

javax.mail.Transportオブジェクト取得時にメッセージKDJE59100-Wを出力します。

値は,デフォルト値を使用します。

10

mail.smtp.quitwait

false

true,false

(大文字と小文字の区別はなし)

javax.mail.Transportオブジェクト取得時にメッセージKDJE59100-Wを出力します。

値は,デフォルト値を使用します。

11

mail.smtp.saslrealm

なし

文字列

指定した値をそのまま使用します。

12

mail.smtp.sendpartial

false

true,false

(大文字と小文字の区別はなし)

メールサーバへの送信処理でメッセージKDJE59100-Wを出力します。

値は,デフォルト値を使用します。

13

mail.smtp.timeout

0

(無限待ち)

0〜2147483647

(単位:ミリ秒)

メールサーバとの接続処理でメッセージKDJE59100-Wを出力します。

値は,デフォルト値を使用します。

14

mail.smtp.ssl.protocols

TLSv1

javax.net.ssl.SSLSocket.setEnabledProtocolsメソッドに設定できる値

javax.net.ssl.SSLSocket.setEnabledProtocolsメソッドに設定できない値を指定した場合,メールサーバとの接続処理で例外(java.lang.IllegalArgumentException)が発生します。

また,接続先のメールサーバが許容していないバージョンを指定した場合,メールサーバとの接続処理で例外(javax.mail.MessagingException)が発生します。

15

mail.smtp.socketFactory.class

なし

javax.net.SocketFactoryクラスのクラス名,またはjavax.net.SocketFactoryクラスを継承したクラスのクラス名

メールサーバとの接続処理で例外(javax.mail.MessagingException)が発生します。

それぞれのプロパティについて,以降で説明します。

〈この項の構成〉

(1) mail.smtp.allow8bitmime

quoted-printableやbase64エンコーディングを使用するメッセージのテキスト部分を,8ビットエンコーディングへ変換するかどうかを指定します。

trueを指定した場合,次の条件を満たしていれば,quoted-printableやbase64エンコーディングを使用するメッセージのテキスト部分は8ビットエンコーディングへ変換されます。

falseを指定した場合は,8ビットエンコーディングへは変換しません。

(2) mail.smtp.auth

AUTHコマンドを使用したユーザ認証をするかどうかを指定します。

trueを指定した場合,AUTHコマンドを使用してユーザ認証をします。falseを指定した場合,AUTHコマンドを使用したユーザ認証はしません。

(3) mail.smtp.connectiontimeout

コネクション確立までのタイムアウト時間(単位:ミリ秒)を指定します。

0を指定すると,無限に待ち続けます。

このプロパティが指定されている場合,スレッドを使用してタイムアウト時間を監視します。ポリシーやシステムの制限でスレッドが作成できない場合は,タイムアウト時間を監視しません。

タイムアウト時間が,OSのTCPの再送タイマによるタイムアウト時間より大きいか,またはタイムアウト監視をしない設定の場合,TCPの再送タイマによるタイムアウト時間が有効となります。なお,再送タイマによるタイムアウトは,OSによって異なります。

(4) mail.smtp.dsn.notify

RCPTコマンドのNOTIFYオプションを指定します。

このオプションはDSN(Delivery Status Notification:配送状態通知)を生成する条件を指定します。コンマを区切りにして,次の表に示す値を組み合わせて指定できます。

表8‒3 mail.smtp.dsn.notifyに指定できる値

項番

指定される内容

1

NEVER

配送状態に関係なく,送信者にDSNを返さない。

2

SUCCESS

メッセージの配送が成功した場合,DSNを生成する。

3

FAILURE

メッセージの配送が失敗した場合,DSNを生成する。

4

DELAY

メッセージの配送が遅延した場合,DSNを生成する。

指定しない場合のDSN生成については,RFC1891ではNOTIFY=FAILUREまたはNOTIFY=FAILURE,DELAYとして指定されたと解釈してよいとされており,サーバの実装に依存します。

(5) mail.smtp.dsn.ret

MAILコマンドのRET追加パラメタ値を指定します。

次の表に示す値を組み合わせて指定できます。

表8‒4 mail.smtp.dsn.ret指定できる値

項番

指定される内容

1

FULL

配送失敗通知メッセージに送信メッセージ全体を含める。

2

HDRS

配送失敗通知メッセージに送信メッセージのヘッダだけを含める。

プロパティを指定しない場合,配送失敗通知メッセージに何が含まれるかは,サーバの実装に依存します。

(6) mail.smtp.ehlo

EHLOコマンドを使用するかどうかを指定します。

trueを指定した場合,EHLOコマンドを使用します。EHLOコマンドでエラーが発生した場合,代替にHELOコマンドを使用します。falseを指定した場合,EHLOコマンドは使用しません。

(7) mail.smtp.from

SMTPおよびSMTPSのMAILコマンドのreverse-pathに使用する電子メールアドレスを指定します。

(8) mail.smtp.localhost

SMTPおよびSMTPSのHELOコマンドまたはEHLOコマンドで使用されるローカルホストのドメイン名を指定します。

JDKおよびネームサービスが適切に定義されている場合,指定する必要はありません。

(9) mail.smtp.noop.strict

メールサーバとのコネクション状態を確認する場合,接続状態と判定するレスポンスを変更する時に使用します。

trueを指定した場合は,NOOPコマンドに対するメールサーバからのレスポンスが250の時に接続状態と見なします。falseを指定した場合は,NOOPコマンドに対するメールサーバからのレスポンスが,421を除く正の整数値の時に接続状態と見なします。

(10) mail.smtp.quitwait

QUITコマンドに対する応答を待つかどうかを指定します。

trueを指定した場合は,QUITコマンドに対する応答を待ちます。falseを指定した場合は,QUITコマンド送信直後にコネクションをクローズします。

(11) mail.smtp.saslrealm

DIGEST-MD5認証で使用するレルムを指定します。

省略した場合,サーバからのチャレンジに含まれる最初のレルムを使用します。チャレンジにレルムが含まれていない場合,接続先ホスト名をレルムとして使用します。

(12) mail.smtp.sendpartial

メッセージに指定されている電子メールアドレスに,正しくない電子メールアドレスが含まれている場合の動作を指定します。

trueを指定した場合は,メッセージを送信した上で,エラーになった電子メールアドレスをSendFailedExceptionで報告します。falseを指定した場合は,メッセージを送信しません。

(13) mail.smtp.timeout

SMTPサーバとの通信(read)のタイムアウト時間(単位:ミリ秒)を指定します。

0を指定すると,無限に待ち続けます。

タイムアウト時間が,OSのTCPの再送タイマによるタイムアウト時間より大きいか,またはタイムアウト監視をしない設定の場合,TCPの再送タイマによるタイムアウト時間が有効となります。なお,再送タイマによるタイムアウトは,OSによって異なります。

(14) mail.smtp.ssl.protocols

メールサーバとのSMTPS通信でのSSLのバージョンを指定する場合に使用します。

指定する値は,javax.net.ssl.SSLSocket.setEnabledProtocolsメソッドに設定できる値です。また,複数の値を指定する場合は,空白区切りで指定します。指定できる値についてはJDKのドキュメントを参照してください。

指定できる値の例を次に示します。

(15) mail.smtp.socketFactory.class

SMTP通信およびSMTPS通信で使用するソケットオブジェクトの生成に使用する,javax.net.SocketFactoryクラスのクラス名,またはjavax.net.SocketFactoryクラスを継承したクラスのクラス名を指定します。

このセッションプロパティを省略,または上記以外の不正なクラス名を指定した場合,通信時のSocketオブジェクトはjava.net.Socketをデフォルト値として使用するため,SMTPS通信時にはこのセッションプロパティを使用して,SSL通信が可能なSocketオブジェクトを生成するSocketFactoryのクラス名(例:javax.net.ssl.SSLSocketFactory)を指定してください。