Java - 用于指定网络设备的VM选项

时间:2015-07-22 14:20:55

标签: java smtp javamail rhel jvm-arguments

有点绑定(双关语)。

我们有一个WebSphere应用程序服务器,它使用邮件包通过SMTP通过JavaMail发送电子邮件。我们有一个RHEL框,具有非root访问权限(无法更改),它有两个网络设备eth0和eth1。邮件包由大量应用程序使用,更新和更改的工作量很大。以前,我们不必担心这个..

我需要从eth1发送邮件,但是,我无法配置它。 这个https://www-01.ibm.com/support/knowledgecenter/SSD28V_8.5.5/com.ibm.websphere.nd.doc/ae/trun_multiplenic.html无效,因为它无法控制拨出电话。

已经尝试了许多JavaMail VM选项,例如mail.smtp.localhost / localaddress(但我知道从一开始就可以用于传入端口绑定,无论如何都要尝试)。

不幸的是,我没有遇到一个VM选项,它允许我指定通过JavaMail或JVM一般使用哪个网络设备(后者将是首选)。

我的目的是尽量减少在服务器设置中适应这种变化的努力程度(我们无法控制)。

显而易见的答案是 - 设置iptables以强制一台设备上的所有流量,但我们无法做到。

下一个答案是 - 指定构建传输时要使用的网络设备,不能这样做,因为我们不拥有邮件包,并且需要大量时间来对所有邮件进行回归测试应用..

任何帮助或创造性的尝试方法(鉴于限制)将不胜感激!

1 个答案:

答案 0 :(得分:0)

非常有趣的“问题限制”:) JavaMail中有一个名为mail.smtp.localaddress的属性。该值应该是要绑定的接口的IP(eth1的IP)。 由于它是属性,因此您可以在使用-Dmail.smtp.localaddress=123.124.123.123

启动应用程序时进行设置

Afaik在websphere中有一个“一般的jvm属性”设置,但我不知道确切