我希望使用IMAP从电子邮件帐户收件箱中返回n(最可能是10个)最近的电子邮件.
到目前为止,我拼凑了:
import imaplib
from email.parser import HeaderParser
M = imaplib.IMAP4_SSL('my.server')
user = 'username'
password = 'password'
M.login(user, password)
M.search(None, 'ALL')
for i in range (1,10):
data = M.fetch(i, '(BODY[HEADER])')
header_data = data[1][0][1]
parser = HeaderParser()
msg = parser.parsestr(header_data)
print msg['subject']
Run Code Online (Sandbox Code Playgroud)
这回复邮件标题很好,但它似乎是一个半随机的电子邮件集合,而不是最近的10.
如果有帮助,我将连接到Exchange 2010服务器.其他方法也欢迎,IMAP似乎是最合适的,因为我只想阅读不发送的电子邮件.
rfa*_*ams 12
sort命令可用,但不保证IMAP服务器支持它.例如,Gmail不支持SORT命令.
要尝试sort命令,请替换:
M.search(None, 'ALL')
with
M.sort(search_critera, 'UTF-8', 'ALL')
那么search_criteria就像一个字符串:
search_criteria = 'DATE' #Ascending, most recent email last
search_criteria = 'REVERSE DATE' #Descending, most recent email first
search_criteria = '[REVERSE] sort-key' #format for sorting
Run Code Online (Sandbox Code Playgroud)
根据RFC5256,这些是有效sort-key的:
"ARRIVAL" / "CC" / "DATE" / "FROM" / "SIZE" / "SUBJECT" / "TO"
注意:
1.需要charset,尝试US-ASCII或UTF-8所有其他人不需要IMAP服务器支持
2.还需要搜索critera.该ALL命令是有效的,但有很多.有关详情,请访问http://www.networksorcery.com/enp/rfc/rfc3501.txt
IMAP的世界疯狂而疯狂.祝好运
| 归档时间: |
|
| 查看次数: |
14061 次 |
| 最近记录: |