我正在使用 ruby 的 Net::IMAP 对象,我可以使用以下任一方法检索一组电子邮件:
IMAP.all ..args..
或者
IMAP.find ..args..
但是无论如何都可以检索特定的电子邮件,例如最好通过 message-id header ?
这是可能的还是我仅限于
all
和 find
并试图用更好的参数缩小结果集?
最佳答案
我不明白您在 IMAP 中使用的是什么技术。然而IMAP Specification提供按各种字段进行搜索的能力,包括电子邮件标题。您可以使用以下 IMAP 命令检索具有 Message-Id <53513DD7.8090606@imap.local>
的电子邮件的 UID。 :
0005 UID SEARCH HEADER Message-ID <53513DD7.8090606@imap.local>
然后,这会给你一个响应,如下所示:* SEARCH 1
0005 OK UID completed
在我的情况下,带有 Message-Id <53513DD7.8090606@imap.local>
的电子邮件是第一个,所以 SEARCH 命令返回一个匹配的 UID 1
.然后,您可以使用
UID FETCH
检索消息。命令,例如:0006 UID FETCH 1 BODY[]
当然,如果你事先知道UID,你可以跳过UID SEARCH
步骤,但这取决于您的应用程序。
关于email - 通过 message_id 从 imap 检索单个电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23411260/