如何使用python在imaplib中按时间对电子邮件进行排序

如何使用python在imaplib中按时间对电子邮件进行排序,python,imaplib,Python,Imaplib,我想按到达时间对电子邮件进行分类 代码如下: data = get_credential('info.txt') imap_conn = create_connection(data, 'outlook.office365.com') imap_conn.select('INBOX', readonly=False) result, messages = imap_conn.sort('ARRIVAL', 'UTF-8', 'FROM peter@gmail.com SINCE "'+(date

我想按到达时间对电子邮件进行分类

代码如下:

data = get_credential('info.txt')
imap_conn = create_connection(data, 'outlook.office365.com')
imap_conn.select('INBOX', readonly=False)
result, messages = imap_conn.sort('ARRIVAL', 'UTF-8', 'FROM peter@gmail.com SINCE "'+(datetime.date.today()-datetime.timedelta(4)).strftime('%d-%b-%Y')+'" 
它返回以下错误:

File "C:\Program Files\Python37\lib\imaplib.py", line 794, in sort
    typ, dat = self._simple_command(name, sort_criteria, charset, *search_criteria)
  File "C:\Program Files\Python37\lib\imaplib.py", line 1196, in _simple_command
    return self._command_complete(name, self._command(name, *args))
  File "C:\Program Files\Python37\lib\imaplib.py", line 1027, in _command_complete
    raise self.error('%s command error: %s %s' % (name, typ, data))
imaplib.IMAP4.error: SORT command error: BAD [b'Command Error. 12']
如何解决这个问题


输入字符集是否正确?如何从
消息中获取它?

Office365不支持
排序
扩展

*功能IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS移动ID取消选择客户端访问规则客户端网络呈现位置后端身份验证子代空闲命名空间文字+


在使用任何扩展之前,您应该检查
功能。

快速谷歌搜索表明,“命令错误12”只是微软说“我们制造的东西不太好用”的方式。您的代码是否针对另一个不是Exchange或类似的IMAP服务器工作?作为aiide,将
None
作为字符集参数传递似乎是一种普遍遵守的约定。您的搜索命令中没有任何非ASCII序列。