如何使用Spring Integration访问邮箱文件夹

时间:2015-09-02 11:59:21

标签: java spring javamail spring-integration

大家早上好,

我使用Spring Integration来读取传入的电子邮件并解析它们。

我想实现以下行为:处理后将电子邮件移至专用文件夹。

我有一个Spring服务来获取和处理电子邮件。

<!-- Mail listeners -->
<int:channel id="receiveChannel" datatype="javax.mail.internet.MimeMessage"/>

<int-mail:inbound-channel-adapter id="incomingEmailsAdapter"
    store-uri="${inboundMail.storeUri}"
    channel="receiveChannel"
    should-delete-messages="false"
    should-mark-messages-as-read="true"
    auto-startup="${inboundMail.startup}"
    java-mail-properties="javaMailInboundProperties">
    <int:poller max-messages-per-poll="${inboundMail.nb.poll}" fixed-rate="${inboundMail.nb.rate}"/>
</int-mail:inbound-channel-adapter>

<int:service-activator id="serviceActivator" input-channel="receiveChannel" ref="mailService" method="handleMail"/>

在handleMail方法中,当我尝试访问可以存储信息的文件夹时,我总是有一个例外,说该文件夹不存在。 文件夹上的exists()方法总是返回false。

    public void handleMail(MimeMessage message) {
    try {
    ...
        Folder folder = message.getFolder();
        folder.open(Folder.READ_WRITE);
        Folder test = folder.getFolder("Transmitted");

我的根文件夹是收件箱。 我创建了一个&#34; Transmitted&#34;夹。但是,当我测试&#34;测试&#34;文件夹存在,总是返回false。因此,我无法将我的信息转移到&#34; Transmitted&#34;文件夹中。

我也试过这个:

         Store fstore = folder.getStore();
         Folder successFolder = fstore.getFolder("Transmitted");

但结果是一样的。 successFolder.exists()返回false;

我应该如何访问该文件夹?

提前致谢

吉勒

1 个答案:

答案 0 :(得分:0)

使用

搞定了
Folder[] folders = folder.getStore().getDefaultFolder().list("*");

文件夹的名称,在本例中为:INBOX.Transmitted

此致

吉勒