簡體   English   中英

如何通過C#代碼創建Outlook兼容格式的SQL服務器數據備份文件

[英]How to create SQL Server data backup file in Outlook Compatible format by C# code

我想從 SQL 服務器數據庫備份所有電子郵件,需要使用 outlook 兼容格式的 C# 代碼創建備份文件。 這樣就可以在outlook軟件中恢復郵件了。

請幫忙

到目前為止,我們已經創建了一個桌面應用程序,並且我們有包含電子郵件的表格,其中還根據我們的需要具有一些自定義字段。

我們對其進行了一些探索,發現以下鏈接 -

我可以在 C# 中讀取 Outlook (2003/2007) PST 文件嗎?

http://www.c-sharpcorner.com/article/outlook-integration-in-C-Sharp/

https://www.add-in-express.com/creating-addins-blog/2013/12/20/create-outlook-files/

我可以在 C# 中讀取 Outlook (2003/2007) PST 文件嗎?

我的問題是我們在數據庫中有一些自定義字段,所以它們將如何存儲在 outlook 數據文件中

Email表結構如下-

表結構

您可以使用 Outlook Object Model 及其 Namespace.AddStore/ AddStoreEx方法將新的或現有的 PST 文件添加到配置文件,然后(給定返回的 Store 對象)用文件夾和電子郵件填充它。 要存儲自定義屬性,請使用MailItem.UserProperties集合。

但是請注意,OOM 不會在服務中工作 - 為此,您需要 擴展 MAPI (C++ 或 Delphi)或Redemption (我是它的作者 - 任何語言)。 在發送的 state 中創建項目也可能是一個挑戰。 如果使用Redemption是一個選項,它會公開RDOSession LogonPstStore方法創建(和刪除)配置為使用指定 PST 文件的臨時配置文件。 它可以在服務中使用。 現有的 Outlook 配置文件不受影響。

Redemption.RDOSession session = new Redemption.RDOSession();
Redemption.RDOPstStore store = session.LogonPstStore(PstFileName);
Redemption.RDOFolder folder = store.IPMRootFolder.Folders.Add("Backup folder");
RDOMail item = folder.Items.Add("IPM.Note");
item.Sent = true;
item.Subject = "test";
item.Body = "test body";
item.Recipients.AddEx("The User", "user@domain.demo", "SMTP");
item.UserProperties.Add("My custom prop", olText).Value = "custom prop value";
item.Save();

你的描述還是不夠准確。

您是否要將來自 outlook 的個人電子郵件存儲到數據庫中,並最終將它們作為 Outlook 中的電子郵件取回?

然后看起來你擁有你需要的一切。 Outlook 中的 MailItem 在數據庫中具有像您這樣的 more-less 屬性。

然后在概念上它應該看起來像這樣: Enumarate MAPIFolder 並為數據庫中的每個電子郵件存儲屬性,然后刪除電子郵件。

在恢復讀取數據庫記錄的情況下,創建新的 MailItem 並將其添加到文件夾中。

但是:我發現字段類型存在一些問題 - 即 EmailTo nvarchar(100) 太小了。 此外,您沒有所有字段來 1:1 恢復電子郵件。

因此,即存儲 msg 文件可能是一個不錯的選擇(也許除了您正在檢索的數據之外)。

請指定更多詳細信息,然后我也可以以更好的方式回答。

編輯:

根據您的澄清(仍然不確定我是否理解正確):最簡單的方法是在此過程中使用 outlook。

在 outlook pst 文件夾中創建,在其中創建電子郵件,然后備份完整的 pst 文件(然后您將所有內容都放在一個文件中)或將單獨的電子郵件導出到 .msg 文件(然后每個電子郵件 1 個文件)。

嘗試直接從您的應用程序寫入 pst 文件或 msg 文件可能非常困難,因為沒有描述這些文件的格式。

如果您想在此過程中使用 Outlook,請准確說明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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