Tomcat 为Spring集成设置JavaMail代理

Tomcat 为Spring集成设置JavaMail代理,tomcat,proxy,jakarta-mail,spring-integration,Tomcat,Proxy,Jakarta Mail,Spring Integration,我创建了一个Spring集成过程,以编程方式处理电子邮件消息。它在我的IDE中运行良好,但在我将其部署到Tomcat Unix服务器时失败。 我正在运行JDK1.6.0.4、Tomcat7.0.29、Grails2.0.4、SpringIntegration 2.1.3和JavaMail 1.4.5。我正试图弄清楚如何配置代理设置,以便运行此程序。我看到2010年的帖子说这是不可能的,但现在看来有了JavaMail属性 我确实尝试在Tomcatsetenv.sh中设置-DsocksProxyHo

我创建了一个Spring集成过程,以编程方式处理电子邮件消息。它在我的IDE中运行良好,但在我将其部署到Tomcat Unix服务器时失败。 我正在运行JDK1.6.0.4、Tomcat7.0.29、Grails2.0.4、SpringIntegration 2.1.3和JavaMail 1.4.5。我正试图弄清楚如何配置代理设置,以便运行此程序。我看到2010年的帖子说这是不可能的,但现在看来有了JavaMail属性

我确实尝试在Tomcat
setenv.sh
中设置
-DsocksProxyHost=myproxy.mycompany.com
,但我的应用程序在到达邮件部分之前就失败了,因为它无法访问内部站点(如我们的datatbase连接)

我已经看过了,我认为我的设置是正确的,但它总是超时

是否有人成功地为Spring集成过程设置了电子邮件代理

我的Spring集成XML文件中的代码段:

<util:properties id="javaMailProperties">
    <prop key="mail.imap.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
    <prop key="mail.imap.socketFactory.fallback">false</prop>
    <prop key="mail.store.protocol">imaps</prop>
    <prop key="mail.debug">true</prop>
    <prop key="mail.smtp.socks.host">socksproxy.mycompany.com</prop>
    <prop key="mail.smtp.socks.port">1080</prop>
    <prop key="mail.imap.socks.host">socksproxy.mycompany.com</prop>
    <prop key="mail.imap.socks.port">1080</prop>
</util:properties>

<mail:inbound-channel-adapter id="imapAdapter"
                              store-uri="imaps://myEmailAddress:myPassword@imap.gmail.com/INBOX"
                              java-mail-properties="javaMailProperties"
                              channel="receiveEmailChannel"
                              should-delete-messages="false"
                              should-mark-messages-as-read="true"
                              auto-startup="true">
    <int:poller max-messages-per-poll="1" fixed-rate="15" time-unit="SECONDS">
    </int:poller>
</mail:inbound-channel-adapter>
我认为重要的是要指出

请注意,如果使用“imaps”协议通过SSL访问IMAP,则所有属性都将命名为“mail.imaps.*”


至少有两个问题

首先

其次,您使用的是
imaps
协议,但设置的是
imap
协议的属性


mail.store.protocol
设置为
imap
并将
mail.imap.ssl.enable
设置为
true
,或者将所有
mail.imap.
属性更改为
mail.imap.
属性。

谢谢比尔。基于,我认为我需要保留
imaps
SSL协议。我也会拿出出厂设置。我肯定是这一次互联网剪切和粘贴设置的受害者,但我正在努力学习。显示
mail.imap.ssl.enable
对于“imap”协议默认为false,对于“imaps”协议默认为true,但我将尝试显式设置它。我没有看到socks主机或其他代理的
imaps
设置。我看到一些
imap.ssl
设置,但没有代理设置。我错过了什么吗?我错过了什么。。。来自JavaDocs的精细打印。。。请注意,如果您使用“imaps”协议通过SSL访问IMAP,则所有属性都将命名为“mail.imaps.*”。谢谢!工作得很有魅力。我认为imaps设置就是它所做的。
<util:properties id="javaMailProperties">
    <prop key="mail.store.protocol">imaps</prop>
    <prop key="mail.imap.ssl.enable">true</prop>
    <prop key="mail.debug">true</prop>
    <prop key="mail.imaps.socks.host">socksproxy.mycompany.com</prop>
    <prop key="mail.imaps.socks.port">1080</prop>
</util:properties>