Python 使用导入函数将mime.eml文件导入gmail API

Python 使用导入函数将mime.eml文件导入gmail API,python,gmail-api,Python,Gmail Api,我是一名python开发人员,对使用Google的gMail API将.eml文件导入gMail帐户有些陌生 我已经完成了所有的基础工作,让我的oAuth证书工作起来,等等 但是,我被数据文件中加载的地方卡住了。我需要帮助将消息数据加载到变量中 如何从磁盘上的示例电子邮件文件(以rfc822格式存储)中以适当的格式创建消息\u数据变量引用 假设磁盘上有一个文件位于/path/to/file/sample.eml。。。如何以gMail API导入调用的正确格式将其加载到消息_数据中 ...

我是一名python开发人员,对使用Google的gMail API将.eml文件导入gMail帐户有些陌生

我已经完成了所有的基础工作,让我的oAuth证书工作起来,等等

但是,我被数据文件中加载的地方卡住了。我需要帮助将消息数据加载到变量中

如何从磁盘上的示例电子邮件文件(以rfc822格式存储)中以适当的格式创建消息\u数据变量引用

假设磁盘上有一个文件位于/path/to/file/sample.eml。。。如何以gMail API导入调用的正确格式将其加载到消息_数据中

    ...
          # how do I properly load message_data from the rfc822 disk file?
          media = MediaIoBaseUpload(message_data, mimetype='message/rfc822')
          message_response = service.users().messages().import_(
              userId='me',
              fields='id',
              neverMarkSpam=True,
              processForCalendar=False,
              internalDateSource='dateHeader',
              media_body=media).execute(num_retries=2)

...
  • 您希望使用Gmail API导入eml文件
  • 您已经能够获取和放置Gmail API的值
  • 您希望使用GoogleAPI python客户端实现这一点。
    • 脚本中的
      服务
      可用于上载eml文件
如果我的理解是正确的,那么这个答案呢?请把这看作是几个可能的答案之一

修改点:
  • 在这种情况下,使用“Users.messages:insert”方法
修改脚本: 在运行脚本之前,请使用eml文件的路径设置文件名

eml_file = "###"  # Please set the filename with the path of the eml file.
user_id = "me"

f = open(eml_file, "r", encoding="utf-8")
eml = f.read()
f.close()
message_data = io.BytesIO(eml.encode('utf-8'))
media = MediaIoBaseUpload(message_data, mimetype='message/rfc822', resumable=True)
metadata = {'labelIds': ['INBOX']}
res = service.users().messages().insert(userId=user_id, body=metadata, media_body=media).execute()
print(res)
在上面的脚本中,还需要以下模块

import io
from googleapiclient.http import MediaIoBaseUpload
注:
  • 在上面修改的脚本中,
    {'labelIds':['INBOX']}
    用作元数据。在这种情况下,导入的eml文件可以在Gmail的收件箱中看到。如果要更改此项,请修改此项
参考:

如果我误解了您的问题,并且这不是您想要的结果,我很抱歉。

您可以使用Google Apps脚本在Google Drive中导入eml文件吗?也许打电话给Gmail.Users.Messagse.insert?