添付ファイルを含むメール メッセージがあります。
添付ファイルをメールから Google ドライブにアップロードする必要があります。
メールにはimaplibを使用し、Google ドライブには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 を使用して Google ドライブにアップロードする方法がわかりません。私はこれを試しましたが、うまくいきませんでした
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()
更新:
このコードは機能しますが、解決策が悪いと思います(画像をローカルに保存してから、この画像をGoogleドライブにアップロードします)
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()