第20章 メールサブシステム
20.1. メールサブシステムでのカスタムトランスポートの使用
標準的なメールサーバー (POP3、IMAP) を使用する場合、定義可能な属性が複数あり、その一部は必須の属性になります。
最も重要な属性は
outbound-socket-binding-ref
で、アウトバウンドメールソケットバインディングへの参照で、ホストアドレスとポート番号で定義されます。
ロードバランシングの目的でホスト設定で複数のホストが使用されるため、一部のユーザーは最も効果的なソリューションではありません。ただし、この設定は標準の JavaMail ではサポートされないため、一部のユーザーがカスタムメールトランスポートを実装する必要があります。
これらのカスタムトランスポートは
outbound-socket-binding-ref
を必要とせず、カスタムのホストプロパティー形式を許可します。
以下のコマンドを使用すると、CLI よりカスタムトランスポートを設定できます。
手順20.1
- 新しいメールセッションを追加します。以下のコマンドは mySession という新しいセッションを作成し、JNDI を
java:jboss/mail/MySession
に設定します。/subsystem=mail/mail-session=mySession:add(jndi-name=java:jboss/mail/MySession)
- アウトバウンドソケットバインディングを追加します。以下のコマンドは、
localhost:25 を参照する
。my-smtp-binding
という名前のソケットバインディングを追加します/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-smtp-binding:add(host=localhost, port=25)
outbind-socket-binding-ref
を使用して SMTP サーバーを追加します。以下のコマンドは、my-smtp-binding
という SMTP を追加し、ユーザー名、パスワード、および TLS 設定を定義します。/subsystem=mail/mail-session=mySession/server=smtp:add(outbound-socket-binding-ref= my-smtp-binding, username=user, password=pass, tls=true)
- POP3 と IMAP に対して、同じ処理を行います。
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-pop3-binding:add(host=localhost, port=110)
/subsystem=mail/mail-session=mySession/server=pop3:add(outbound-socket-binding-ref=my-pop3-binding, username=user, password=pass)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-imap-binding:add(host=localhost, port=143)
/subsystem=mail/mail-session=mySession/server=imap:add(outbound-socket-binding-ref=my-imap-binding, username=user, password=pass)
- カスタムサーバーを使用するには、アウトバウンドソケットバインディングのないカスタムメールサーバーを新規作成し (アウトバウンドソケットバインディングは任意であるため)、代わりにホスト情報をプロパティーの一部として指定します。
/subsystem=mail/mail-session=mySession/custom=myCustomServer:add(username=user,password=pass, properties={"host" => "myhost", "my-property" =>"value"})
カスタムプロトコルを定義するとき、ピリオド(.)が含まれるプロパティー名は完全修飾名とみなされ、指定時に渡されます。その他の形式(例:my-property )は、mail.server-name.my-property
の形式に変換されます。
custom-server 属性のカスタム形式を強調する、完全な XML 設定の例は次のとおりです。
<subsystem xmlns="urn:jboss:domain:mail:1.1"> <mail-session jndi-name="java:/Mail" from="user.name@domain.org"> <smtp-server outbound-socket-binding-ref="mail-smtp" tls="true"> <login name="user" password="password"/> </smtp-server> <pop3-server outbound-socket-binding-ref="mail-pop3"/> <imap-server outbound-socket-binding-ref="mail-imap"> <login name="nobody" password="password"/> </imap-server> </mail-session> <mail-session debug="true" jndi-name="java:jboss/mail/Default"> <smtp-server outbound-socket-binding-ref="mail-smtp"/> </mail-session> <mail-session debug="true" jndi-name="java:jboss/mail/Custom"> <custom-server name="smtp"> <login name="username" password="password"/> <property name="host" value="mail.example.com"/> </custom-server> <custom-server name="pop3" outbound-socket-binding-ref="mail-pop3"> <property name="custom_prop" value="some-custom-prop-value"/> <property name="some.fully.qualified.property" value="fully-qualified-prop-name"/> </custom-server> </mail-session> <mail-session debug="true" jndi-name="java:jboss/mail/Custom2"> <custom-server name="pop3" outbound-socket-binding-ref="mail-pop3"> <property name="custom_prop" value="some-custom-prop-value"/> </custom-server> </mail-session> </subsystem>