python 获取邮件附件
时间: 2023-10-16 08:20:41 浏览: 147
要从邮件中获取附件,可以使用 Python 标准库中的 `imaplib` 和 `email` 模块。下面是一个简单的示例代码:
```python
import imaplib
import email
# 登录邮箱
mail = imaplib.IMAP4_SSL('imap.gmail.com') # 以 Gmail 为例
mail.login('your_email@gmail.com', 'your_password')
mail.select('inbox')
# 搜索邮件
typ, data = mail.search(None, 'ALL') # 获取所有邮件
for num in data[0].split():
typ, data = mail.fetch(num, '(RFC822)')
msg = email.message_from_bytes(data[0][1])
# 遍历邮件内容,查找附件
for part in msg.walk():
if part.get_content_maintype() == 'multipart': # 处理多重消息(含有附件)
continue
if part.get('Content-Disposition') is None: # 不是附件
continue
# 保存附件到本地文件
filename = part.get_filename()
if filename:
filepath = '/path/to/save/attachments/' + filename
with open(filepath, 'wb') as f:
f.write(part.get_payload(decode=True))
# 关闭邮箱连接
mail.close()
mail.logout()
```
需要注意的是,有些邮件可能并不是纯文本或 HTML 格式,而是包含了图片、音频、视频等二进制文件。这些文件也可以使用上述代码进行获取,只需要在遍历邮件内容时作出相应的判断即可。
阅读全文