我有包含附件的邮件。
我需要将附件从邮件上传到谷歌驱动器。
对于邮件,我使用imaplib,对于谷歌驱动器,我使用pyDrive
我正在使用以下代码获取附件:
if mail.get_content_maintype() == 'multipart':
for part in mail.walk():
if part.get_content_maintype() == 'multipart':
continue
if part.get('Content-Disposition') is None:
attachment = part.get_payload(decode=True)
我payload
在邮件中有附件。现在我不明白如何payload
使用 pyDrive 上传到谷歌驱动器。我试过这个,但它没有用
attachment = part.get_payload(decode=True)
gd_file = self.gd_box.g_drive.CreateFile({'title': 'Hello.jpg',
"parents": [{"kind": "drive#fileLink", "id": folder['id']}]})
gd_file.GetContentFile(attachment)
gd_file.Upload()
升级版:
此代码有效,但我认为它的解决方案不好(我们将图像保存在本地,然后将此图像上传到谷歌驱动器)
attachment = part.get_payload(decode=True)
att_path = os.path.join("", part.get_filename())
if not os.path.isfile(att_path):
fp = open(att_path, 'wb')
fp.write(attachment)
fp.close()
gd_file = self.gd_box.g_drive.CreateFile({'title': part.get_filename(),
"parents": [{"kind": "drive#fileLink", "id": folder['id']}]})
gd_file.SetContentFile(part.get_filename())
gd_file.Upload()