gpt4 book ai didi

python - 如何使用 IMAPClient 将电子邮件标志更改为最近

转载 作者:太空狗 更新时间:2023-10-30 02:49:16 68 4
gpt4 key购买 nike

我正在使用 IMAPClient (Python) 从我的电子邮件服务器中检索电子邮件,方法是检查标记有“\Recent”的电子邮件。阅读电子邮件后,电子邮件服务器会自动将电子邮件标志设置为“\Seen”。

我想做的是将电子邮件标志重置为“\Recent”,这样当我直接在服务器上查看电子邮件时,仍显示为未读。

我发现当我尝试使用 IMAPClient 的“set_flag”定义将“\Recent”标志添加到电子邮件时,IMAPClient 抛出异常。添加任何其他标志都可以正常工作。

IMAPClient 文档说 Recent 标志是只读的,但我想知道是否还有办法将电子邮件标记为未读。

据我所知,像 Thunderbird 这样的电子邮件软件允许您将电子邮件设置为未读,所以我认为一定有办法做到这一点。

谢谢。

最佳答案

为了完整起见,这里有一个使用 IMAPClient 的实际示例。更新\Seen 标志以控制消息是标记为已读还是未读。

from imapclient import IMAPClient, SEEN

client = IMAPClient(...)
client.select_folder('INBOX')
msg_ids = client.search(...)

# Mark messages as read
client.add_flags(msg_ids, [SEEN])

# Mark messages as unread
client.remove_flags(msg_ids, [SEEN])

请注意,使用 add_flagsremove_flags 而不是 set_flags,因为后者会将标志重置为指定的标志。设置已读/未读状态时,您通常希望保留任何其他消息标记不变。

还值得注意的是,可以使用“BODY.PEEK”数据项调用 fetch 来检索部分消息,而不会影响\Seen 标志。这可以避免在下载消息后需要修复\Seen 标志。

参见 section 6.4.5 of RFC 3501了解更多详情。

关于python - 如何使用 IMAPClient 将电子邮件标志更改为最近,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9058865/

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