第 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)
/subsystem=mail/mail-session=mySession:add(jndi-name=java:jboss/mail/MySession)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 添加转出套接字绑定。下面的命令添加了名为
my-smtp-binding
的套接字绑定,它指向localhost:25
。/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-smtp-binding:add(host=localhost, port=25)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-smtp-binding:add(host=localhost, port=25)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 用
outbind-socket-binding-ref
添加 STMP 服务器。下面的命令添加一个名为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)
/subsystem=mail/mail-session=mySession/server=smtp:add(outbound-socket-binding-ref= my-smtp-binding, username=user, password=pass, tls=true)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 对 POP3 和 IMAP 重复这个过程:
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-pop3-binding:add(host=localhost, port=110)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-pop3-binding:add(host=localhost, port=110)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /subsystem=mail/mail-session=mySession/server=pop3:add(outbound-socket-binding-ref=my-pop3-binding, username=user, password=pass)
/subsystem=mail/mail-session=mySession/server=pop3:add(outbound-socket-binding-ref=my-pop3-binding, username=user, password=pass)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-imap-binding:add(host=localhost, port=143)
/socket-binding-group=standard-sockets/remote-destination-outbound-socket-binding=my-imap-binding:add(host=localhost, port=143)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /subsystem=mail/mail-session=mySession/server=imap:add(outbound-socket-binding-ref=my-imap-binding, username=user, password=pass)
/subsystem=mail/mail-session=mySession/server=imap:add(outbound-socket-binding-ref=my-imap-binding, username=user, password=pass)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 要使用自定义服务器,创建一个新的不带有转出套接字绑定(因为是可选项)的自定义邮件服务器,并将主机信息作为属性的一部分来提供。
/subsystem=mail/mail-session=mySession/custom=myCustomServer:add(username=user,password=pass, properties={"host" => "myhost", "my-property" =>"value"})
/subsystem=mail/mail-session=mySession/custom=myCustomServer:add(username=user,password=pass, properties={"host" => "myhost", "my-property" =>"value"})
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在定义自定义协议时,任何包含句点(.)的属性名都被当作全限定名且直接传入。任何其他格式(如 my-property)将转换程下列格式:mail.server-name.my-property
。
下面是一个完整的 XML 配置示例,它在 custom-server 属性里强调了自定义格式: