python - 如何使用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 "'+(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']
如何解决问题?
输入字符集UTF-8
是否正确?如何从中获取messages
?
解决方案
Office365 不支持SORT
扩展。
* CAPABILITY IMAP4 IMAP4rev1 AUTH=PLAIN AUTH=XOAUTH2 SASL-IR UIDPLUS MOVE ID UNSELECT CLIENTACCESSRULES CLIENTNETWORKPRESENCELOCATION BACKENDAUTHENTICATE CHILDREN IDLE NAMESPACE LITERAL+
您应该CAPABILITY
在使用任何扩展程序之前进行检查。
推荐阅读
- java - 如何使用java在jmeter中获取body数据请求
- php - JSON - 规范化内部格式
- delphi - 如何通过样式向选定的 ListBox 项添加一些按钮?
- angular - 使用 Angular 理解 heroku 日志
- excel-formula - 多个 Excel SEARCH 函数条件
- python - 将我的函数数据列添加到python中的原始数据中
- javascript - 没有前瞻或后瞻的匹配组
- jquery - 当幻灯片多于 slidestoshow 变量时,滑动滑块中心模式不起作用
- google-sheets - Google表格,如何根据列数据验证自动对行进行排序
- c++ - 使用线程编程时出现 std::thread::_Invoker 错误