使用Spring Integration Mail连接到Microsoft Exchange Server

时间:2012-05-02 14:46:18

标签: spring exchange-server spring-integration

我想使用Spring Integration Mail使用IMAP连接到Microsoft Exchange 2010。 我的问题是连接字符串的外观如何。

让我们说:

domain=earth
user=jdoe
email=jon.doe@earth.com
Folder=inbox

据我所知,MS Exchange仅支持使用imaps进行连接。

My Spring集成配置如下所示:

<util:properties id="javaMailProperties">
    <prop key="mail.imaps.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
    <prop key="mail.imaps.socketFactory.fallback">false</prop>
    <prop key="mail.store.protocol">imaps</prop>
    <prop key="mail.debug">true</prop>
</util:properties>

<mail:inbound-channel-adapter id="imapAdapter"
    store-uri="imaps://earth/jdoe/jon.doe:jdoespw@example.mailhost.com/inbox" channel="recieveEmailChannel"
    should-delete-messages="false" should-mark-messages-as-read="true"
    auto-startup="true" java-mail-properties="javaMailProperties">
    <int:poller fixed-delay="5"
        time-unit="SECONDS" />
</mail:inbound-channel-adapter>

<int:channel id="recieveEmailChannel" />

<int:service-activator input-channel="recieveEmailChannel"
    ref="mailReceiver" method="receive" />

<bean id="mailReceiver"
    class="com.earth.MailReceiver" />

2 个答案:

答案 0 :(得分:2)

现在发现它。它不必对连接字符串执行某些操作。 对于那些想要连接到Exchange的人,这里有一些提示。

这是我的配置:

<util:properties id="javaMailProperties">
    <prop key="mail.imaps.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
    <prop key="mail.imap.starttls.enable">true</prop>
    <prop key="mail.imaps.socketFactory.fallback">false</prop>
    <prop key="mail.store.protocol">imaps</prop>
    <prop key="mail.debug">true</prop>
</util:properties>

<mail:inbound-channel-adapter id="imapAdapter"
    store-uri="imap://<username>:<password>@<exchange-url>/INBOX" channel="recieveEmailChannel"
    should-delete-messages="false" should-mark-messages-as-read="false"
    auto-startup="true" java-mail-properties="javaMailProperties">
    <int:poller fixed-delay="5"
    time-unit="SECONDS" />
</mail:inbound-channel-adapter>

<int:channel id="recieveEmailChannel" />

<int:service-activator input-channel="recieveEmailChannel"
    ref="reviewMailService" method="receive" />

通常,Exchange使用带有STARTTLS连接的Imaps。

要执行SSL握手,您可以使用InstallCert Java程序: http://code.google.com/p/java-use-examples/source/browse/trunk/src/com/aw/ad/util/InstallCert.java

答案 1 :(得分:0)

  1. imaps://之后的第一个节点需要是服务器的fqdn,而不是域(例如email.earth.com)。
  2. 此处有关于兑换凭据的常见问题解答http://www.oracle.com/technetwork/java/faq-135477.html
  3. IIRC,默认情况下,在Exchange上启用IMAP ,管理员必须启用它。