【问题标题】:Preview email with CFIMAP without marking the SEEN flag?使用 CFIMAP 预览电子邮件而不标记 SEEN 标志?
【发布时间】:2014-02-01 19:38:57
【问题描述】:

在 ColdFusion 9 上,我们尝试使用 CFIMAP 来预览用户电子邮件消息(主题、发件人、日期)。我们可以使用 getHeaderOnly 获取数据,但这样做会将 SEEN 标志设置为 yes。

有没有办法使用 CFIMAP 来获得预览而不将其标记为 SEEN?

这是一般 IMAP 的正常功能吗?

【问题讨论】:

  • 在 IMAP 中:使用 BODY[part] 获取正文会隐式标记已看到的标志,使用 BODY.PEEK[part] 获取它会阻止这种行为。
  • 您可以在 getall 选项中使用 cfimap 查询结果中的 FROM、SUBJECT 和 SENTDATE 值 选择* 来自 Query_getAttachments where seen=
  • @shemy 这是否保持 SEEN 标志完好无损? getHeaderOnly 将项目标记为我们执行调用时看到的。
  • SEEN 与 READ 不同吗?
  • CFIMAP 标记无法进行 PEEK,这是您需要避免标记邮件的方法。您也许可以使用 CF 中的 Java 类来执行您需要的特定调用?

标签: coldfusion imap coldfusion-9


【解决方案1】:

我们不妨回答这个问题。正如@HenryGibson 指出的那样,<cfimap> 不可能做到这一点:它没有公开相关功能。请参阅 RFC 中有关 FETCH 的 PEEK 注释:“6.4.5. FETCH Command”。这就是您需要能够做的事情,而您无法通过 <cfimap> 控制这些东西

然而,Java 有一个通过 IMAP 访问邮件存储的库:IMAPStore;并查看IMAPMessage 的文档,它(不出所料)支持获取时的PEEK 选项:setPeek()

所以它肯定是可行的。很遗憾<cfimap> 并没有让您变得简单:在bugbase 上为它提出 E/R 可能是值得的。

我认为你需要用 Java 给它一个 bash,如果你遇到问题,那么在这里提出一个与此相关的问题。我没有亲自走 java 路线,所以不能给你一个快速的“101”,而且它还不够琐碎,不适合在这里回答(我不得不承认我没有有足够的动力去跟上它)。

但恐怕<cfimap> 不会成为您解决此问题的一部分。

【讨论】:

  • 如果您不关心它是 服务器范围 设置,请尝试将 mail.imap.peek 邮件属性设置为 true(对于 ssl 使用 imaps)。那应该禁用该行为。明显的缺点是该设置适用于整个 jvm(不适合共享应用程序)。显然,cfimap 在连接级别应用它会更好,但是.. 对于某些人来说,这可能是一个可以接受的解决方法。
猜你喜欢
  • 2013-05-10
  • 2011-03-18
  • 2013-04-18
  • 1970-01-01
  • 2017-09-26
  • 2015-03-28
  • 1970-01-01
  • 2012-05-21
  • 1970-01-01
相关资源
最近更新 更多