有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

javaimapidlechanneladapterjavax。邮政AuthenticationFailedException:[警报]同时连接太多

我有一个spring集成模块,我在其中配置了一个imap空闲通道适配器

<mail:imap-idle-channel-adapter id="fetch-email-channel-adapter" store-uri="${common.mail.imapScheme}://${common.mail.imapHost}:${common.mail.imapPort}/INBOX"
    channel="fetch-email-channel" should-delete-messages="false" should-mark-messages-as-read="true" authenticator="imapAuthenticator" auto-startup="${common.mail.autostart}"
    error-channel="errorChannel" />

现在,当模块重新启动几次时,我得到以下错误

    [task-scheduler-9] WARN  [ImapIdleChannelAdapter] - error occurred in idle task
javax.mail.AuthenticationFailedException: [ALERT] Too many simultaneous connections. (Failure)
        at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665)
        at javax.mail.Service.connect(Service.java:317)
        at javax.mail.Service.connect(Service.java:176)
        at javax.mail.Service.connect(Service.java:125)
        at org.springframework.integration.mail.AbstractMailReceiver.openSession(AbstractMailReceiver.java:203)
        at org.springframework.integration.mail.AbstractMailReceiver.openFolder(AbstractMailReceiver.java:208)
        at org.springframework.integration.mail.ImapMailReceiver.waitForNewMessages(ImapMailReceiver.java:105)
        at org.springframework.integration.mail.ImapIdleChannelAdapter$IdleTask.run(ImapIdleChannelAdapter.java:197)
        at org.springframework.integration.mail.ImapIdleChannelAdapter$ReceivingTask.run(ImapIdleChannelAdapter.java:169)
        at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53)
        at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
2015-06-06 00:00:00,221 [task-scheduler-9] WARN  [ImapIdleChannelAdapter] - Failed to execute IDLE task. Will attempt to resubmit in 10000 milliseconds.
java.lang.IllegalStateException: Failure in 'idle' task. Will resubmit.
        at org.springframework.integration.mail.ImapIdleChannelAdapter$IdleTask.run(ImapIdleChannelAdapter.java:216)
        at org.springframework.integration.mail.ImapIdleChannelAdapter$ReceivingTask.run(ImapIdleChannelAdapter.java:169)
        at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:53)
        at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
        at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
        at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(Unknown Source)
        at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
Caused by: javax.mail.AuthenticationFailedException: [ALERT] Too many simultaneous connections. (Failure)
        at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:665)
        at javax.mail.Service.connect(Service.java:317)
        at javax.mail.Service.connect(Service.java:176)
        at javax.mail.Service.connect(Service.java:125)
        at org.springframework.integration.mail.AbstractMailReceiver.openSession(AbstractMailReceiver.java:203)
        at org.springframework.integration.mail.AbstractMailReceiver.openFolder(AbstractMailReceiver.java:208)
        at org.springframework.integration.mail.ImapMailReceiver.waitForNewMessages(ImapMailReceiver.java:105)
        at org.springframework.integration.mail.ImapIdleChannelAdapter$IdleTask.run(ImapIdleChannelAdapter.java:197)
        ... 11 more

我已经找到了如何使用Javamail api关闭连接,但如何使用imap空闲通道适配器关闭连接

使用以下spring版本

spring-integration-mail : 2.2.3.RELEASE


共 (1) 个答案

  1. # 1 楼答案

    我建议你升级到一个(更)新的版本,看看它是否能解决这个问题。IMAP邮件组件已经修复了几个错误。如果你不能升级到最新版本(4.1.5),我建议至少升级到3.0.7

    查阅migration guides以确定可能需要考虑的任何更改