10.2. 사용자 지정 전송 구성

POP3 또는 IMAP과 같은 표준 메일 서버를 사용하는 경우 메일 서버에는 정의할 수 있는 특성 집합이 있습니다. 이러한 속성 중 일부는 필수입니다. 가장 중요한 것은 아웃바운드 메일 소켓 바인딩에 대한 참조이며 호스트 주소와 포트 번호로 정의되는 outbound-socket-binding-ref 입니다.

아웃바운드-소켓-바인딩-ref 를 정의하는 것이 부하 분산을 위해 여러 호스트를 사용하여 호스트 구성을 사용하는 사용자에게 가장 효과적인 솔루션이 아닐 수 있습니다. 표준 Jakarta Mail은 부하 분산을 위해 여러 호스트를 사용하는 호스트 구성을 지원하지 않습니다. 따라서 여러 호스트를 사용하여 이 구성이 있는 사용자는 사용자 지정 메일 전송을 구현해야 합니다. 이러한 사용자 지정 메일 전송에는 아웃바운드-소켓-바인딩-ref 가 필요하지 않으며 사용자 지정 호스트 속성 형식이 허용됩니다.

관리 CLI에서 사용자 지정 메일 전송을 구성할 수 있습니다.

  1. 새 메일 세션을 추가하고 JNDI 이름을 지정합니다.

    /subsystem=mail/mail-session=mySession:add(jndi-name=java:jboss/mail/MySession)
  2. 아웃바운드 소켓 바인딩을 추가하고 호스트 및 포트를 지정합니다.

    /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-smtp-binding:add(host=localhost, port=25)
  3. SMTP 서버를 추가하고 아웃바운드 소켓 바인딩, 사용자 이름 및 암호를 지정합니다.

    /subsystem=mail/mail-session=mySession/server=smtp:add(outbound-socket-binding-ref=my-smtp-binding, username=user, password=pass, tls=true)
참고

유사한 단계를 사용하여 POP3 또는 IMAP 서버를 구성할 수 있습니다.

POP3 서버

/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)

IMAP 서버

/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 형식으로 변환됩니다.

다음 XML은 사용자 지정 서버를 포함하는 메일 구성의 예입니다.

<subsystem xmlns="urn:jboss:domain:mail:3.0">
   <mail-session name="default" jndi-name="java:jboss/mail/Default">
        <smtp-server outbound-socket-binding-ref="mail-smtp"/>
   </mail-session>
    <mail-session name="myMail" from="user.name@domain.org" jndi-name="java:/Mail">
        <smtp-server password="password" username="user" tls="true" outbound-socket-binding-ref="mail-smtp"/>
        <pop3-server outbound-socket-binding-ref="mail-pop3"/>
        <imap-server password="password" username="nobody" outbound-socket-binding-ref="mail-imap"/>
    </mail-session>
    <mail-session name="custom" jndi-name="java:jboss/mail/Custom" debug="true">
        <custom-server name="smtp" password="password" username="username">
            <property name="host" value="mail.example.com"/>
        </custom-server>
    </mail-session>
    <mail-session name="custom2" jndi-name="java:jboss/mail/Custom2" debug="true">
        <custom-server name="pop3" outbound-socket-binding-ref="mail-pop3">
            <property name="custom-prop" value="some-custom-prop-value"/>
        </custom-server>
    </mail-session>
</subsystem>