Ruby/IMAP 从最后保存的消息 uid 开始获取消息

发布于 2024-11-10 11:50:19 字数 322 浏览 4 评论 0原文

我正在尝试从文件夹的最后保存的消息 ID 开始获取新消息。

到目前为止,这是我的代码:

self.imap_connection.examine(folder)
imap_query = "UID SEARCH #{last_uid}:*"
messages = self.imap_connection.search(imap_query)

我从 IMAP 服务器得到的唯一响应是: 服务器接收到的 IMAP 命令出错。

那么,有谁知道 ruby​​ imap 库获取 uids 的正确“语法”?

问候,亚历克斯

I'm trying to get new messages starting from the last saved message id of a folder.

Here's my code so far:

self.imap_connection.examine(folder)
imap_query = "UID SEARCH #{last_uid}:*"
messages = self.imap_connection.search(imap_query)

The only response I'm getting from the IMAP server is:
Error in IMAP command received by server.

So, does anyone know the correct "syntax" for the ruby imap library to get the uids ??

Regards, Alex

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

宛菡 2024-11-17 11:50:19

在上次获取某个 UID 之后获取所有消息对我来说很有效。

imap_connection.uid_search(["UID", "#{last_fetched_uid + 1}:#{MAX_UID}"])

Getting all the messages after a certain last fetched UID works for me.

imap_connection.uid_search(["UID", "#{last_fetched_uid + 1}:#{MAX_UID}"])

肩上的翅膀 2024-11-17 11:50:19

解决方案是通过其 uid 获取文件夹的所有邮件并保存它的 seqno(它是一个 imap 字段):

imap_connection.uid_search("ALL") 

对于使用上次保存的 seqno 获取新邮件搜索:

imap_connection.uid_search("#{seqno.to_i}:*")

通过上次保存的 uid 进行搜索对我来说不起作用,所以我使用了最后一个保存了 seqno ,瞧。

The solution is getting all messages of a folder by it's uid and saving it's seqno(it's an imap field):

imap_connection.uid_search("ALL") 

For getting new mails search using the last saved seqno:

imap_connection.uid_search("#{seqno.to_i}:*")

Searching via the last saved uid did not work for me so I used the last saved seqno and voila.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文