gpt4 book ai didi

tomcat - 为 Spring Integration 设置 JavaMail 代理

转载 作者:行者123 更新时间:2023-11-28 21:56:49 25 4
gpt4 key购买 nike

我创建了一个 Spring Integration 进程来以编程方式处理电子邮件消息。它在我的 IDE 中工作正常,但当我将它部署到我们的 Tomcat Unix 服务器时失败。我正在运行 JDK 1.6.0.4、Tomcat 7.0.29、Grails 2.0.4、Spring Integration 2.1.3 和 JavaMail 1.4.5。我试图弄清楚如何配置代理设置以便我可以运行它。我看到 2010 年的帖子说这是不可能的,但看起来现在有 JavaMail 属性。

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

我看过 JavaMail API - FAQ我认为我设置正确,但它总是超时。

有没有人为 Spring Integration 流程成功设置电子邮件代理?

我的 Spring Integration 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>

解决方案

根据 Bill Shannon 的回复,我将我的 javaMailProperties 更新为下面的代码片段,一切都按预期工作。

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

我认为指出 JavaDocs 中的细则很重要...

Note that if you're using the "imaps" protocol to access IMAP over SSL, all the properties would be named "mail.imaps.*"

最佳答案

至少有两个问题...

首先,you don't need the socket factory settings .

其次,您正在使用 imaps 协议(protocol),但设置了 imap 协议(protocol)的属性。

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

关于tomcat - 为 Spring Integration 设置 JavaMail 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12169371/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com