[英]Importing mime .eml file to gmail API using the import function
我是一名 Python 開發人員,對使用 Google 的 gMail API 將 .eml 文件導入 gMail 帳戶有點陌生。
我已經完成了所有基礎工作,使我的 oAuth 憑據工作等。
但是,我被困在加載數據文件的位置。 我需要幫助將消息數據加載到變量中。
如何從磁盤上的示例電子郵件文件(以 rfc822 格式存儲)以適當的格式創建message_data變量引用?
假設我在 /path/to/file/sample.eml 的磁盤上有一個文件......我如何以正確的格式將其加載到 message_data 以用於 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)
...
service
可用於上傳 eml 文件。如果我的理解是正確的,這個答案怎么樣? 請將此視為幾種可能的答案之一。
在運行腳本之前,請將文件名設置為 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']}
用作元數據。 在這種情況下,可以在 Gmail 的收件箱中看到導入的 eml 文件。 如果你想改變這個,請修改這個。如果我誤解了您的問題並且這不是您想要的結果,我深表歉意。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.