在 Gmail 上标记为不可见 (imaplib)
Mark as unseen on Gmail (imaplib)
我正在尝试将电子邮件标记为在 Gmail 服务器上未看到。
我正在使用这个命令:
res, data = mailbox.uid('STORE', uid, '-FLAGS', '(\Seen)')
一切正常,但当我使用网络浏览器检查它时,它仍然标记为已看到。
当我检查标志时,这是我得到的:
b'46 (FLAGS (-FLAGS \Seen))'
我已经看到多个关于此问题的问题,但 none 提出的解决方案有效。
顺便提一下,我使用以下方式附加此电子邮件:
mailbox.append(db_email.folder, "-FLAGS \Seen", time.mktime(db_email.date.timetuple()), mail.as_bytes())
但是 flag 参数 -FLAGS \Seen
没有任何效果,因为当我不传递 flag 参数时它是一样的。
此外,我已仔细检查 uid
给定的邮件文件夹,它与适当的电子邮件相匹配。
您似乎有点误解了 APPEND 上的标志。
通过执行 APPEND folder (-FLAGS \Seen) ...
,您实际上创建了一条带有两个标志的消息:标准 \Seen
标志和非标准 -FLAGS
标志。
要创建不带 \Seen 标志的消息,只需使用 ()
作为 APPEND
的标志列表。
-FLAGS
是 STORE 的子命令,表示从当前列表中删除这些标志。相反,+FLAGS
是将这些标志添加到当前列表中。普通 FLAGS
覆盖当前列表。
此外,如果您确实删除了 IMAP 连接上的 \Seen
标志,它可能需要一段时间才能显示在 GMail WebUI 中。您可能需要刷新或切换文件夹才能呈现更改。
注意:您没有保护反斜杠。 \S
不是合法的转义序列,因此将被传递,但您应该使用双反斜杠 ('\Seen'
) 或原始字符串 (r'\Seen'
)
我正在尝试将电子邮件标记为在 Gmail 服务器上未看到。
我正在使用这个命令:
res, data = mailbox.uid('STORE', uid, '-FLAGS', '(\Seen)')
一切正常,但当我使用网络浏览器检查它时,它仍然标记为已看到。 当我检查标志时,这是我得到的:
b'46 (FLAGS (-FLAGS \Seen))'
我已经看到多个关于此问题的问题,但 none 提出的解决方案有效。
顺便提一下,我使用以下方式附加此电子邮件:
mailbox.append(db_email.folder, "-FLAGS \Seen", time.mktime(db_email.date.timetuple()), mail.as_bytes())
但是 flag 参数 -FLAGS \Seen
没有任何效果,因为当我不传递 flag 参数时它是一样的。
此外,我已仔细检查 uid
给定的邮件文件夹,它与适当的电子邮件相匹配。
您似乎有点误解了 APPEND 上的标志。
通过执行 APPEND folder (-FLAGS \Seen) ...
,您实际上创建了一条带有两个标志的消息:标准 \Seen
标志和非标准 -FLAGS
标志。
要创建不带 \Seen 标志的消息,只需使用 ()
作为 APPEND
的标志列表。
-FLAGS
是 STORE 的子命令,表示从当前列表中删除这些标志。相反,+FLAGS
是将这些标志添加到当前列表中。普通 FLAGS
覆盖当前列表。
此外,如果您确实删除了 IMAP 连接上的 \Seen
标志,它可能需要一段时间才能显示在 GMail WebUI 中。您可能需要刷新或切换文件夹才能呈现更改。
注意:您没有保护反斜杠。 \S
不是合法的转义序列,因此将被传递,但您应该使用双反斜杠 ('\Seen'
) 或原始字符串 (r'\Seen'
)