如何解决在 pop3 连接上间歇性出现 javax.mail.AuthenticationFailedException 的协议错误
我有一个 javamail 程序可以定期读取我的 pop3 帐户的电子邮件。大多数情况下,它连接并成功运行。但是,过了一会儿,我开始收到 javax.mail.AuthenticationFailedException
并且无法在进一步调用时连接它。当我关闭并启动我的程序时,它会使用相同的凭据再次成功连接。为了进一步分析,我启用了会话调试日志。以下是命令跟踪输出:
@2021-05-17 12:36:08.150 !DEBUG +OK The Microsoft Exchange POP3 service is ready. #27820545
@2021-05-17 12:36:08.150 !DEBUG CAPA #27820545
@2021-05-17 12:36:08.150 !DEBUG +OK #27820545
@2021-05-17 12:36:08.150 !DEBUG TOP #27820545
@2021-05-17 12:36:08.150 !DEBUG UIDL #27820545
@2021-05-17 12:36:08.150 !DEBUG SASL PLAIN #27820545
@2021-05-17 12:36:08.150 !DEBUG USER #27820545
@2021-05-17 12:36:08.150 !DEBUG STLS #27820545
@2021-05-17 12:36:08.150 !DEBUG . #27820545
@2021-05-17 12:36:08.150 !DEBUG DEBUG POP3: authentication command trace suppressed #27820545
@2021-05-17 12:36:50.341 !DEBUG DEBUG POP3: authentication command Failed #27862736
@2021-05-17 12:36:50.342 !DEBUG QUIT #27862737
@2021-05-17 12:36:50.342 !DEBUG -ERR Protocol error. 19 #27862737
@2021-05-17 12:37:50.371 !DEBUG DEBUG: getProvider() returning javax.mail.Provider[STORE,pop3,com.sun.mail.pop3.POP3Store,Oracle] #27922766
@2021-05-17 12:37:50.371 !DEBUG DEBUG POP3: mail.pop3.rsetbeforequit: false #27922766
@2021-05-17 12:37:50.371 !DEBUG DEBUG POP3: mail.pop3.disabletop: false #27922766
这可能是什么原因?帐户服务提供商是 Microsoft Exchange。协议 error.19 表示什么?
解决方法
我怀疑为 POP 服务器提供的身份验证凭据已过期,或者您对所有连接使用相同的会话,并且它会在一段时间后过期。但就像@JRichardsz 说的,请附上您的代码片段和异常堆栈。
,在它突然停止工作之前它可以工作一段时间,并且在您刚刚重新启动程序后它再次工作,这允许假设您的代码本身没有任何问题。
您是连接到本地 Exchange 服务器还是 Office365?
后者为各种服务活动强加了几个限制值,并且在电子邮件的情况下,当达到此限制之一时,您会收到身份验证失败。
您也可以在本地 Exchange 上配置相同或类似的限制,并且在您点击它们时会出现相同的错误行为。
在您的情况下,我假设您在给定的时间内达到了登录尝试次数的限制。检查如果您不那么频繁地 ping 邮箱会发生什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。