我正在尝试编写一个 Python 程序,该程序从我的 Gmail 帐户中的未读电子邮件中下载所有附件并将它们放入一个定义的文件夹中,但是当我运行它时,它给了我以下错误:ImportError: cannot import name 'IMAP4_SSL' from 'imaplib'
我在某处读到安装 python openssl 模块会有所帮助,但已经检查过了,我已经有了。我对编程很陌生,所以我在这里有点无能为力。任何建议将不胜感激!
代码如下:
import os
from imbox import Imbox
import traceback
host = "imap.gmail.com"
username = 'account'
password = 'password'
download_folder = 'C:\\Users\\artur\\Desktop\\test'
if not os.path.isdir(download_folder):
os.makedirs(download_folder, exist_ok=True)
mail = Imbox(host, username=username, password=password, ssl=True, ssl_context=None, starttls=False)
messages = mail.messages(unread=True) # defaults to inbox
for (uid, message) in messages:
mail.mark_seen(uid) # optional, mark message as read
for idx, attachment in enumerate(message.attachments):
try:
att_fn = attachment.get('filename')
download_path = f"{download_folder}/{att_fn}"
print(download_path)
with open(download_path, "wb") as fp:
fp.write(attachment.get('content').read())
except:
pass
print(traceback.print_exc())
mail.logout()
不知道有没有用,但是导致终端的所有错误行是:
File "c:/path/Gmail_downloader.py", line 2, in <module>
from imbox import Imbox
File "C:\Users\artur\anaconda3\lib\site-packages\imbox\__init__.py", line 1, in <module>
from imbox.imbox import Imbox
File "C:\Users\artur\anaconda3\lib\site-packages\imbox\imbox.py", line 3, in <module>
from imbox.imap import ImapTransport
File "C:\Users\artur\anaconda3\lib\site-packages\imbox\imap.py", line 1, in <module>
from imaplib import IMAP4, IMAP4_SSL
ImportError: cannot import name 'IMAP4_SSL' from 'imaplib' (C:\Users\artur\anaconda3\lib\imaplib.py)
感谢您的宝贵时间!