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

标签 java spring jakarta-mail 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");

我的根文件夹是收件箱。
我创建了一个“已传输”文件夹。但是当我测试“test”文件夹是否存在时,总是返回 false 。因此,我无法将我的消息移动到“已传输”文件夹。

我也试过这个:
         Store fstore = folder.getStore();
         Folder successFolder = fstore.getFolder("Transmitted");

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

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

提前致谢

吉尔斯

最佳答案

通过使用得到它

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

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

问候

吉尔斯

关于java - 如何使用 Spring Integration 访问邮箱文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32352570/

相关文章:

java - 错误 - trustAnchors 参数必须非空

java - 平均成绩计算器不返回正确答案

java - 使用AspectJ的异步执行切面

java - 如何更改 JavaMail 端口

java - 接收邮件并存储在jTable中

java - Android retrofit v2 插入失败错误403

Java 在 Linux 上编译并运行多个类

java - 将现有的 Spring 应用程序转换为 Spring-Boot

java - Spring Boot - 来自休息 Controller 接口(interface)的休息客户端

java - 发送邮件前在 header 中设置 MessageId