如何为Spring集成邮件配置动态入站?

时间:2015-03-26 19:54:20

标签: java spring spring-integration

我是春季邮件集成的新手,下面我将配置为 mail:inbound-channel-adapter 。但我希望属性 store-uri 是动态的,我可以从我的Java控制器更新它。因为此属性在我的应用程序上下文中不是常量。

<int-mail:inbound-channel-adapter id="pop3ShouldDeleteTrue"
                    store-uri="imaps://tata:tata@imap.gmail.com:993/inbox"
                    channel="receiveChannel"
                    should-delete-messages="true"
                    auto-startup="false"
                    java-mail-properties="javaMailProperties">
        <!-- Will poll every 20 seconds -->
        <int:poller fixed-rate="20000"/>
</int-mail:inbound-channel-adapter> 

1 个答案:

答案 0 :(得分:1)

网址是入站适配器中的final字段(实际上是传递到ImapMailReceiver的{​​{1}}组件),因此无法更新。

更改URL的唯一方法是重建这两个类并将它们注入代表入站适配器的MailReceivingMessageSource

然而,这不是线程安全的,所以我不认为在网络容器中安全。

按需构建SourcePollingChannelAdapter并调用ImapMailReceiver方法可能更容易,然后使用receive()将消息发送到频道。