Java IMAP电子邮件通道适配器引发异常“;A5错误无效的命令或参数&引用;
我在spring integration中使用imap空闲通道适配器接收电子邮件:Java IMAP电子邮件通道适配器引发异常“;A5错误无效的命令或参数&引用;,java,spring-integration,jakarta-mail,imap,mail-server,Java,Spring Integration,Jakarta Mail,Imap,Mail Server,我在spring integration中使用imap空闲通道适配器接收电子邮件: A5 SEARCH NOT (ANSWERED) NOT (DELETED) NOT (SEEN) NOT (FLAGGED) ALL A5 BAD invalid command or parameters 似乎imap服务器认为上述命令无效,有人能告诉我如何修复吗 我的调试消息: DEBUG: successfully loaded resource: /META-INF/javamail.default.
A5 SEARCH NOT (ANSWERED) NOT (DELETED) NOT (SEEN) NOT (FLAGGED) ALL
A5 BAD invalid command or parameters
似乎imap服务器认为上述命令无效,有人能告诉我如何修复吗
我的调试消息:
DEBUG: successfully loaded resource: /META-INF/javamail.default.address.map
DEBUG: getProvider() returning javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle]
DEBUG IMAPS: mail.imap.fetchsize: 16384
DEBUG IMAPS: mail.imap.ignorebodystructuresize: false
DEBUG IMAPS: mail.imap.statuscachetimeout: 1000
DEBUG IMAPS: mail.imap.appendbuffersize: -1
DEBUG IMAPS: mail.imap.minidletime: 10
DEBUG IMAPS: closeFoldersOnStoreFailure
DEBUG IMAPS: trying to connect to host "imap.mxhichina.com", port 993, isSSL true
* OK AliYun IMAP Server Ready(10.177.11.50)
A0 CAPABILITY
* CAPABILITY IMAP4rev1 IDLE XLIST UIDPLUS ID SASL-IR AUTH=XOAUTH AUTH=EXTERNAL
A0 OK CAPABILITY completed
DEBUG IMAPS: AUTH: XOAUTH
DEBUG IMAPS: AUTH: EXTERNAL
DEBUG IMAPS: protocolConnect login, host=imap.mxhichina.com, user=*****, password=<non-null>
DEBUG IMAPS: mechanism PLAIN not supported by server
DEBUG IMAPS: mechanism LOGIN not supported by server
DEBUG IMAPS: mechanism NTLM not supported by server
DEBUG IMAPS: mechanism XOAUTH2 disabled by property: mail.imaps.auth.xoauth2.disable
DEBUG IMAPS: LOGIN command trace suppressed
DEBUG IMAPS: LOGIN command result: A1 OK LOGIN completed
A2 CAPABILITY
* CAPABILITY IMAP4rev1 IDLE XLIST UIDPLUS ID SASL-IR AUTH=XOAUTH AUTH=EXTERNAL
A2 OK CAPABILITY completed
DEBUG IMAPS: AUTH: XOAUTH
DEBUG IMAPS: AUTH: EXTERNAL
A3 LIST "" INBOX
* LIST () "/" "INBOX"
A3 OK LIST completed
DEBUG IMAPS: connection available -- size: 1
A4 SELECT INBOX
* 2 EXISTS
* 0 RECENT
* OK [UNSEEN 0]
* OK [UIDNEXT 25] Predicted next UID.
* OK [UIDVALIDITY 2] UIDs valid.
* FLAGS (\Answered \Seen \Deleted \Draft \Flagged)
* OK [PERMANENTFLAGS (\Answered \Seen \Deleted \Draft \Flagged)] Limited.
A4 OK [READ-WRITE] SELECT completed
A5 SEARCH NOT (ANSWERED) NOT (DELETED) NOT (SEEN) NOT (FLAGGED) ALL
A5 BAD invalid command or parameters
13:41:00.557 WARN [task-scheduler-1][org.springframework.integration.mail.ImapIdleChannelAdapter] error occurred in idle task
javax.mail.MessagingException: A5 BAD invalid command or parameters;
DEBUG:已成功加载资源:/META-INF/javamail.default.address.map
调试:getProvider()返回javax.mail.Provider[STORE,imaps,com.sun.mail.imap.imapssltore,Oracle]
调试IMAPS:mail.imap.fetchsize:16384
调试IMAPS:mail.imap.ignorebodystructuresize:false
调试IMAPS:mail.imap.statuscachetimeout:1000
调试IMAPS:mail.imap.appendbuffersize:-1
调试IMAPS:mail.imap.minidletime:10
调试IMAPS:closeFoldersOnStoreFailure
调试IMAPS:尝试连接到主机“imap.mxhichina.com”,端口993,isSSL true
*OK AliYun IMAP服务器就绪(10.177.11.50)
A0能力
*功能IMAP4rev1 IDLE XLIST UIDPLUS ID SASL-IR AUTH=XOATH AUTH=EXTERNAL
A0正常能力完成
调试IMAPS:AUTH:XOAUTH
调试IMAPS:AUTH:EXTERNAL
调试IMAPS:protocolConnect登录,主机=imap.mxhichina.com,用户=****,密码=
调试IMAPS:服务器不支持普通机制
调试IMAPS:服务器不支持机制登录
调试IMAPS:服务器不支持NTLM机制
调试IMAPS:机制XOAUTH2被属性禁用:mail.IMAPS.auth.XOAUTH2.disable
调试IMAPS:已抑制登录命令跟踪
调试IMAPS:登录命令结果:A1 OK登录已完成
A2能力
*功能IMAP4rev1 IDLE XLIST UIDPLUS ID SASL-IR AUTH=XOATH AUTH=EXTERNAL
A2正常能力完成
调试IMAPS:AUTH:XOAUTH
调试IMAPS:AUTH:EXTERNAL
A3列表“”收件箱
*列表()“/”收件箱
A3确定列表已完成
调试IMAPS:连接可用--大小:1
A4选择收件箱
*2存在
*0最近
*OK[未显示的0]
*确定[UIDNEXT 25]预测下一个UID。
*确定[UID有效性2]UID有效。
*标志(\responsed\Seen\Deleted\Draft\Flagged)
*OK[PERMANENTFLAGS(\Answered\Seen\Deleted\Draft\Flagged)]有限公司。
A4确定[读写]选择完成
A5搜索未(应答)未(删除)未(查看)未(标记)全部
A5错误无效的命令或参数
13:41:00.557警告[task-scheduler-1][org.springframework.integration.mail.ImapIdleChannelAdapter]空闲任务中出现错误
javax.mail.MessaginException:A5错误无效的命令或参数;
我的配置
<int-mail:imap-idle-channel-adapter id="mailAdapter"
store-uri="imaps://${username}:${password}@imap.mxhichina.com/INBOX"
channel="inboundChannel"
auto-startup="true"
should-delete-messages="true"
should-mark-messages-as-read="true"
java-mail-properties="javaMailProperties"/>
<util:properties id="javaMailProperties">
<prop key="mail.imap.socketFactory.class">javax.net.ssl.SSLSocketFactory</prop>
<prop key="mail.imap.socketFactory.fallback">false</prop>
<prop key="mail.store.protocol">imaps</prop>
<prop key="mail.transport.protocol">smtps</prop>
<prop key="mail.smtps.auth">true</prop>
<prop key="mail.debug">true</prop>
<prop key="mail.smtp.starttls.enable">true</prop>
</util:properties>
javax.net.ssl.SSLSocketFactory
假的
imaps
smtps
真的
真的
真的
我的邮件服务器不支持NOT(****)命令,所以下面的命令不起作用
A5 SEARCH NOT (ANSWERED) NOT (DELETED) NOT (SEEN) NOT (FLAGGED) ALL
因此,我将DefaultSearchTermStrategy更改为我自己的一个,名为UnsenseArchTermStrategy
@Component
public class UnseenSearchTermStrategy implements SearchTermStrategy {
UnseenSearchTermStrategy(){
super();
}
@Override
public SearchTerm generateSearchTerm(Flags flags, Folder folder) {
return new FlagTerm(new Flags(Flags.Flag.SEEN), false);
}
}
下面的命令将在邮件服务器上执行,并且运行良好
A5 SEARCH UNSEEN ALL
stackoverflow中的相关主题
请在问题中添加更多标签。这看起来不像是Spring集成问题。您的IMAP服务器有一些限制。谢谢,添加标记IMAP和javamailGood。但我仍然认为你应该为你的电子邮件服务器添加标签。这可能根本不是Java客户机的问题。