gpt4 book ai didi

c - 获取未读邮件数

转载 作者:太空宇宙 更新时间:2023-11-04 06:43:51 24 4
gpt4 key购买 nike

我正在开发一个小软件来检查我的邮件帐户中是否有 >0 封未读邮件(任何免费邮件,imap)。

我正在用 C 编写代码,但我不是专家...

如何使用 C 的 imap4-api(或类似的东西)检查是否有任何未读电子邮件(不获取它们)?

提前致谢

最佳答案

有几种方法可以做到这一点。我将在协议(protocol)级别进行解释,我敢打赌您的 C 库将至少公开其中一个...

一般来说,最有效的方法是发出 STATUS 命令并询问文件夹的 UNSEEN 计数:

A001 STATUS "INBOX" (UNSEEN)
* STATUS "INBOX" (UNSEEN 16)
A001 OK STATUS completed

您可以选择文件夹并检查 [UNSEEN] 响应代码是否在未标记的 OK 上返回:

A002 SELECT INBOX
* 223 EXISTS
* 223 RECENT
* OK [UNSEEN 1] mailbox contains unseen messages
* OK [UIDVALIDITY 1] UIDs are valid for this mailbox
* OK [UIDNEXT 554] next expected UID is 554
* FLAGS (\Answered \Deleted \Draft \Flagged \Seen $Forwarded $MDNSent)
* OK [PERMANENTFLAGS (\Answered \Deleted \Draft \Flagged \Seen $Forwarded $MDNSent \*)] junk-related flags are not permanent
* OK [HIGHESTMODSEQ 504] modseq tracked on this mailbox
A002 OK [READ-WRITE] SELECT completed

一旦选择了文件夹,您就可以发出 SEARCH 命令并请求 UNSEEN 消息(如果有任何返回,则您有未读邮件):

A003 SEARCH UNSEEN
* SEARCH 1 2 12 13 14 155 156 157 158 159 183 184 185 215 216 218
A003 OK SEARCH completed

请注意,所有这些都以每个文件夹为基础进行操作。如果您想了解邮箱中的所有文件夹,则必须遍历所有文件夹。要获取完整的文件夹列表,请使用 LIST 命令:

A004 LIST "" "*"
* LIST (\HasNoChildren) "/" "Drafts"
* LIST (\HasNoChildren) "/" "INBOX"
* LIST (\NoInferiors) "/" "Junk"
* LIST (\HasNoChildren) "/" "Sent"
* LIST (\HasNoChildren) "/" "Trash"
* LIST (\HasNoChildren) "/" "Unread Messages"
A004 OK LIST completed

关于c - 获取未读邮件数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4163044/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com