簡體   English   中英

如何將附件文件存儲在數據庫中的 email 中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM