第19章 メールサブシステム
19.1. メールサブシステムでのカスタムトランスポートの使用 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
標準的なメールサーバー (POP3、IMAP) を使用する場合、定義可能な属性が複数あり、その一部は必須の属性になります。
最も重要な属性は
outbound-socket-binding-ref です。この属性は、アウトバウンドメールソケットバインディングへの参照で、ホストアドレスとポート番号で定義されます。
ロードバランシングの目的で、ホスト設定に複数のホストが使用されるため、ユーザーによっては最も効率的な方法ではありません。この設定は標準的な JavaMail によってサポートされないため、カスタムのメールトランスポートを実装する必要がある場合があります。
このようカスタムトランスポートは、
outbound-socket-binding-ref を必要とせず、カスタムのホストプロパティー形式を使用できます。
以下のコマンドを使用すると、CLI よりカスタムトランスポートを設定できます。
手順19.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>