[英]How to store attachment file in an email in a database?
我使用此代碼存儲來自 Outlook 中特定地址 email 的附件xlsx
文件,但現在我想將這些文件存儲在 SQL 服務器的數據庫中,而不是筆記本電腦中的文件夾中? 您知道如何將這些文件直接存儲在數據庫中嗎? 非常感謝。
outputDir = r"C:\Users\CMhalla\Desktop\Hellmann_attachment"
i=0
for m in messages:
if m.SenderEmailAddress == 'adress@outlook.com':
body_content=m.Body
for attachment in m.Attachments:
i=i+1
attachment.SaveAsFile(os.path.join(outputDir,attachment.FileName + str(i)+'.xlsx'))
Oultook 對象模型不提供任何用於將附件直接保存到 DB 的屬性或方法。 您需要先將文件保存在磁盤上,然后以任何方便的方式將其添加到 Db。
但是,您可能對在 Outlook 中讀取附加項目的字節數組感興趣。 在這種情況下,您可以將字節數組直接寫入 Db,而無需觸及可能會降低整體性能的文件系統。 PR_ATTACH_DATA_BIN屬性包含通常通過對象鏈接和嵌入 (OLE) IStream
接口訪問的二進制附件數據。 當PR_ATTACH_METHOD
屬性的值為ATTACH_BY_VALUE
,此屬性保存附件,這是通常的附件方法,也是唯一需要支持的方法。
Outlook 對象模型無法使用PropertyAccessor.GetProperty
檢索大型二進制或字符串 MAPI 屬性。 在低級別(擴展 MAPI)上, IMAPIProp::GetProps()
方法不適用於大型PT_STING8
/ PT_UNICODE
/ PT_BINARY
屬性。 它們必須通過以下方式作為IStream
打開 - IMAPIProp::OpenProperty(PR_ATTACH_DATA_BIN, IIS_IStream, ...)
。 有關詳細信息,請參閱PropertyAccessor.GetProperty( PR_ATTACH_DATA_BIN) 無法獲取 Outlook 附件。
您可以使用 Microsoft Power Automate 將附件保存在驅動器中,然后將文件上傳到 Python 環境。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.