我想通过python以编程方式访问Mac OS X系统上存在的所有邮件,该邮件由内置的“Mail.app”程序接收。是否有友好的apis访问该程序存储的邮件?我的印象是,它不仅仅是一种文本格式,而且可能更复杂。感谢。
答案 0 :(得分:3)
答案 1 :(得分:2)
从2020年开始,您可以使用Python emlx library。
pip install emlx
示例代码:
import emlx
import glob
for filepath in glob.iglob("/Users/<username>/Library/Mail/", recursive=True):
m = emlx.read(filepath)
在消息m
上,您可以执行各种操作:
>>> m.headers
{'Subject': 'Re: Emlx library ✉️',
'From': 'Michael <michael@example.com>',
'Date': 'Thu, 30 Jan 2020 20:25:43 +0100',
'Content-Type': 'text/plain; charset=utf-8',
...}
>>> m.headers['Subject']
'Re: Emlx library ✉️'
>>> m.plist
{'color': '000000',
'conversation-id': 12345,
'date-last-viewed': 1580423184,
'flags': {...}
...}
>>> m.flags
{'read': True, 'answered': True, 'attachment_count': 2}
如果需要速度,则只能解析plist
和flags
:
>>> m = emlx.read(filepath, plist_only=True)
答案 2 :(得分:0)
改为使用此:
fname = glob.glob('./mails/**/*.emlx', recursive = True)
msg = emlx.read(fname)
print(msg.headers['Subject'])
路径字符串中的/ ** /用作通配符