【问题标题】:gmail api to mark all messages as readgmail api将所有消息标记为已读
【发布时间】:2014-10-26 16:58:48
【问题描述】:

我最近永久切换到 gmail 的纯 html 版本,因为它与 vimperator 配合得更好,现在我有 4000 条未读消息隐藏在社交和促销标签中。我想将所有这些标记为已读。有没有办法做到这一点,而不需要像they do here with imaplib这样的每条消息

【问题讨论】:

    标签: api email gmail imap


    【解决方案1】:

    如果您想将收件箱中的所有内容都标记为已读,请在登录并SELECTINBOX 后执行此 IMAP 命令:

    tag STORE 1:* +FLAGS (\Seen)

    您可以使用 imaplib、任何套接字库或仅启用 SSH 的 TCP 程序(例如 socatopenssl s_client)来执行此操作。

    以下是标记所有使用 GMail 已读邮件所需的命令记录:

    $ openssl s_client -connect imap.gmail.com:993 -crlf
    * OK Gimap ready for requests from 208.65.73.143 f185mb90387173ioe
    
    a LOGIN [username] [password]
    * CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT
    a OK [username] [name] authenticated (Success)
    
    b SELECT INBOX
    * FLAGS (\Answered \Flagged \Draft \Deleted \Seen $Phishing $Forwarded Yellow $NotPhishing)
    * OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen $Phishing $Forwarded Yellow $NotPhishing \*)] Flags permitted.
    * OK [UIDVALIDITY 7] UIDs valid.
    * 3617 EXISTS
    * 0 RECENT
    * OK [UIDNEXT 39807] Predicted next UID.
    * OK [HIGHESTMODSEQ 4076284]
    b OK [READ-WRITE] INBOX selected. (Success)
    
    c STORE 1:* +FLAGS (\Seen)
    * 1 FETCH (FLAGS (\Seen))
    * 2 FETCH (FLAGS (\Seen))
    ...
    * 3617 FETCH (FLAGS (\Seen))
    c OK Success
    
    d LOGOUT
    * BYE LOGOUT Requested
    d OK 73 good day (Success)
    

    如果您有很多消息,您可能希望将+FLAGS.SILENTSTORE 命令一起使用,这不会导致它将结果回显给您。

    【讨论】:

    猜你喜欢
    • 2016-06-17
    • 2018-01-05
    • 1970-01-01
    • 2015-01-15
    • 2022-01-16
    • 1970-01-01
    • 1970-01-01
    • 2011-01-16
    • 2015-03-26
    相关资源
    最近更新 更多