我对IMAP协议有疑问(如果我的服务器违反了它或者我误解了某些内容):

我遇到了javax.mail.MessagingException(由com.sun.mail.iap.CommandFailedException引起),因为我正在尝试访问不再存在的消息(实际上连接的客户端从未知道它)。

使用Javamail(几乎是当前版本,行为不会随当前版本而改变)我有两个应用程序[C1和C2]访问一个IMAP邮箱/同一个文件夹[S]。

两个客户端[C1和C2]定期提取新消息(使用javax.mail.Folder.getMessages()方法)。如果有消息可用,则会读取,删除该文件夹并删除该文件夹。

C1已经连接并定期完成这项工作。现在C2还连接并与IMAP服务器进行以下通信:

S: * OK The Microsoft Exchange IMAP4 service is ready.

C2: a001 CAPABILITY

S: * CAPABILITY IMAP4 IMAP4rev1 AUTH=NTLM AUTH=GSSAPI AUTH=PLAIN STARTTLS UIDPLUS CHILDREN IDLE NAMESPACE LITERAL+

S: a001 OK CAPABILITY completed.

C2: a002 AUTHENTICATE PLAIN

S: +

C2: [...]

S: a002 OK AUTHENTICATE completed.

C2: a003 NOOP

S: a003 OK NOOP completed.

C2: a004 NOOP

S: a004 OK NOOP completed.

C2: a005 LIST "" MyFolder

S: * LIST (\HasNoChildren) "/" MyFolder

C2: a005 OK LIST completed.

S: a006 SELECT MyFolder

S: * 0 EXISTS

S: * 0 RECENT

S: * FLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)

S: * OK [PERMANENTFLAGS (\Seen \Answered \Flagged \Deleted \Draft $MDNSent)] Permanent flags

S: * OK [UIDVALIDITY 11369] UIDVALIDITY value

S: * OK [UIDNEXT 39] The next unique identifier value

S: a006 OK [READ-WRITE] SELECT completed.

C2: a007 NOOP

S: a007 OK NOOP completed.

显然没有消息可用,因此C2将等待几分钟再次检查。同时C1检查并接收一条消息,它将其标记为已删除并清除该文件夹。

下次C2要求新消息时(使用上面提到的Javamail方法),我的IMAP服务器返回:

C2: a008 NOOP

S: * 1 EXPUNGE

S: * 0 EXISTS

S: a008 OK NOOP completed.

现在javax.mail.Folder.getMessages()会返回一条消息(几乎没有填充任何内容),javax.mail.Message.isExpunged()也会返回false。

几乎任何消息方法都失败,上面提到了异常com.sun.mail.iap.CommandFailedException:a010否指定的消息集无效。

我在这里做错了什么?

我的IMAP服务器反应奇怪吗?它违反了IMAP协议吗?它真的应该通知我的客户(C2)有关它永远不知道的一条消息吗?

我是否应该在JavaMail中保持IMAPFolder处于打开状态以便以后使用?

这可能是JavaMail中的一个错误(当然我不知道代码的每一行,但代码似乎已经存在了很长一段时间)?

服务器违反了协议,IMAP协议违规:未知消息的EXPUNGE响应?相关推荐

  1. 【计算机网络】应用层 : 电子邮件 ( SMTP 协议 | MIME 协议 | POP3 协议 | IMAP 协议 | 基于万维网的电子邮件 )

    文章目录 一.电子邮件信息格式★ 二.电子邮件系统 组成 结构 ★ 三.SMTP 协议 ( 简单邮件传送协议 ) ★ 四.SMTP 协议 连接建立流程 五.SMTP 协议 邮件发送 流程 六.SMTP ...

  2. 网易闪电邮收信显示连接服务器,网易闪电邮IMAP协议同步网页邮箱收发邮件的使用技巧...

    网易闪电邮是许多网友都在使用的一款邮箱,它为用户提供了非常多有用的功能,比如:使用网易闪电邮IMAP协议,就可以让网易闪电邮同步接收与发送网页邮箱的邮件,下面,就一起来了解一下网易闪电邮IMAP协议同 ...

  3. 网易邮箱服务器邮箱协议,怎么用网易闪电邮IMAP协议同步网页邮箱?

    网易闪电邮的使用已经变得越来越普及了,它为用户提供了非常多有用的功能,比如:使用网易闪电邮IMAP协议,就可以让网易闪电邮同步接收与发送网页邮箱的邮件,今天,就和小编一起来看看网易闪电邮IMAP协议同 ...

  4. QQ邮箱服务器协议,QQ邮箱新功能 IMAP协议支持

    一直认为QQ邮箱是国内最好用的邮箱之一,它不但界面清爽.安全快捷,还不断推出许多特色功能.最近,我就惊喜的发现我的QQ邮箱又开通了IMAP服务,这是一个比POP3更稳定更快捷的超轻量级的收发协议服务, ...

  5. 邮件服务器imap有推送吗,为什么我的邮件服务器支持imap协议还收不到邮件内容...

    满意答案 qk2523 2017.04.05 采纳率:48%    等级:7 已帮助:163人 支持imap协议和能不能收到邮件没有什么关系. 1.使用Web方式可以正常接收邮件,但使用Outlook ...

  6. 联创打印管理系统连接服务器失败,企业邮箱在Foxmail 7.2上POP3/IMAP协议设置方法...

    Foxmail 7.2 POP3/IMAP 设置方法如下: 1.在foxmail窗口右上角单击菜单入口,在菜单下选择 账户 : 注:如果为新下载安装的 Foxmail,安装后按照系统提示进行以下操作. ...

  7. foxmail服务器协议,foxmail客户端上pop3、imap协议应该怎么选择?哪个更好-上海腾曦网络[foxmail]...

    foxmail客户端上pop3.imap协议应该怎么选择?哪个更好? 作者:腾讯企业邮箱客户端    发布时间:2021-01-18 19:13:51  访问量:857  来源:foxmail 导读: ...

  8. 新网邮箱接收邮件服务器端口,全球邮企业邮箱MAC OS上POP3/IMAP协议设置方法

    第一步 在 Mac 打开 设置 ,进入"邮件"页面,添加帐户. 第二步 进入新增帐户页面,输入您完整的电子邮件地址和密码,点击"创建",系统会寻找匹配的设置. ...

  9. email协议与服务器关系,常见的邮件协议:POP3、IMAP、SMTP之间的区别和联系

    POP3 POP3是Post Office Protocol 3的简称,即邮局协议的第3个版本,是TCP/IP协议族中的一员,主要用于支持使用客户端远程管理在服务器上的电子邮件.POP3是因特网电子邮 ...

  10. 新网邮箱手机服务器,全球邮企业邮箱Android(安卓)系统手机 POP3 IMAP协议设置方法...

    第一步 点击"设置",进入"添加账户"-->"电子邮件"打开设置电子邮件界面; 第二步 可以选择邮件账户类型"POP3账户& ...

最新文章

  1. 运维监控系统——Zabbix简介
  2. zuul 动态路由mysql_zuul 动态路由 - typistw的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. fileinput模块可以循环一个或多个文本文件的内容
  4. MIPI参数配置解释
  5. android中AndroidManifest.xml 的解析 (转)
  6. 【渝粤教育】广东开放大学 Android移动开发项目实践 形成性考核 (58)
  7. 安装sqlserver2008,重新启动计算机不通过的解决办法
  8. python中字典的索引_按索引访问Python字典的元素
  9. 力扣20-有效的括号(C++,附思路)
  10. 【英语学习】【WOTD】magniloquent 释义/词源/示例
  11. 加快Linux上yum下载安装包的速度(以CentOS 7,安装gcc为例)
  12. 生成模型VS判别模型
  13. PoJ3278--Catch That Cow(Bfs)
  14. Flink查询关联Hbase输出
  15. c#操作斑马打印机打印中文
  16. 怎样写好一篇高质量的技术文章?
  17. tp交换机管理页面_tplink交换机怎么设置_tplink交换机使用方法 | tplogin.cn
  18. 游戏策划在游戏的开发过程中扮演什么角色?——游戏策划入门
  19. 系统文件IO与标准文件IO
  20. linux centos7 关于Python模拟浏览器踩坑(转载)

热门文章

  1. cocoscreator摘星星补充-添加结束游戏
  2. iPhoneSE成为比拼的武器,天猫以更凶猛补贴反击拼多多
  3. 将自己的主页地址设置为OpenID
  4. lisp princ详解_晓东CAD家园-论坛-A/VLISP-正则表达式lisp实例讲解-通过代码,完整的展示了正则表达式在lisp中使用 - Powered by Discuz!...
  5. 科目二 侧方位停车 流程记录 LTS
  6. Linux 命令 大结
  7. YOUTUBE API调用 JAVA
  8. win10系统任务栏不显示最小化窗口的处理步骤
  9. 【C/C++】文件操作实例——学生信息管理
  10. 简述微处理器、微型计算机、微机系统的组成和三者间关系?