1

我正在使用 imaplib 并尝试解析来自 gmail 帐户的消息。我的代码已经工作了几个月,现在突然就惨败了。我不知道这归因于什么。

以下工作大约有 1/3 的时间。通过“工作”,我的意思是当我收到电子邮件时成功打印除“没有新消息”之外的其他内容。有人对尝试此操作的更强大方法有任何建议吗?或者也许现在建议配置 gmail 帐户以使其更可靠地工作?

如果我编写代码的方式似乎是一种好的做法,我通常也很感兴趣。感谢您的任何帮助...

def check_email(interval):
    while True:
        server.select('INBOX')
        status, ids = server.search(None, 'UnSeen')

        if not ids or ids[0] is '': 
            print 'no new messages'
        else:
            print 'found a message; attempting to parse...'
            latest_id = ids[0]
            status, msg_data = server.fetch(latest_id, '(UID BODY[TEXT])')
            raw_data = msg_data[0][1]
            char_array = list(raw_data)
            print 'message result: ', char_array 

        time.sleep(interval)

EDIT1:我现在收到以下错误:

“imaplib.error:FETCH 命令错误:BAD ['Could not parse command']”

有谁知道我可以将此归因于什么?这显然是该行的结果

status, msg_data = server.fetch(latest_id, '(UID BODY[TEXT])')

EDIT2:我发现我可以登录 gmail 帐户,单击“更多”选项卡,然后单击“全部标记为已读”,突然代码按预期工作。有没有办法使用 imaplib 将所有消息标记为远程读取?

4

0 回答 0