我正在使用 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 将所有消息标记为远程读取?