如何在Outlook中创建SQL Server数据备份文件通过C#代码兼容格式

问题描述:

我想从SQL Server数据库中备份所有电子邮件,并且需要使用Outlook兼容格式的C#代码创建备份文件。这样可以在Outlook软件中恢复电​​子邮件。如何在Outlook中创建SQL Server数据备份文件通过C#代码兼容格式

请帮

到目前为止,我们已经创建了一个桌面应用程序,我们必须具有一定的自定义字段也按我们的需要在表中的电子邮件。

我们已经做了一些关于它的勘探和下面的链接,发现给出 -

Can I read an Outlook (2003/2007) PST file in C#?

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/

Can I read an Outlook (2003/2007) PST file in C#?

我的问题是,我们有一些自定义字段在数据库中,所以他们将如何得到stor编辑在Outlook数据文件

电子邮件表结构下面给出 -

table structure

+0

您的桌面应用程序如何将数据存储在表中?扭转那个过程。它是否抓住每个单独的电子邮件并存储为一个blob?它是否将每段数据提取到自定义字段中? –

+0

请检查上面给出的表格结构。 –

+0

您现有的代码必须使用office API来提取电子邮件。您需要使用Office API来创建它们。没有办法只是'恢复'他们 - 这是一个完全自定义的格式,你正在存储他们。如果你还保存了原始的'.msg'文件,它可能更直接 –

您可以使用Outlook对象模型及其Namespace.AddStore/AddStoreEx方法将新的或现有的PST文件添加到配置文件,然后(给定返回的Store对象)使用文件夹和电子邮件填充它。要存储自定义属性,请使用MailItem.UserProperties集合。

但请注意,OOM不会在服务中工作 - 您需要Extended MAPI(C++或Delphi)或Redemption(任何语言)。在发送状态下创建项目也可能是一个挑战。如果使用Redemption是一个选项,它将公开RDOSessionLogonPstStore创建(和删除)配置为与指定的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", "[email protected]", "SMTP"); 
item.UserProperties.Add("My custom prop", olText).Value = "custom prop value"; 
item.Save(); 

您的描述还不够精确。

您是否想将Outlook中的单个电子邮件存储到数据库中,并最终在Outlook中将它们还原为电子邮件?

然后它看起来像你有你需要的一切。 Outlook中的MailItem在数据库中拥有更多像您一样的属性。

然后概念上它应该看起来像这样: Enumarate MAPIFolder和数据库中的每个电子邮件存储属性,然后删除电子邮件。

如果还原读取数据库记录,请创建新的MailItem并将其添加到文件夹中。

但是: 我看到字段类型的一些问题 - 即EmailTo nvarchar(100)太小。 此外,您还没有将所有字段恢复为1:1的电子邮件。

所以,即存储msg文件可能是不错的选择(也许除了你正在检索的数据)。

请指定更多的细节,然后我也可以更好地回答。

编辑:

根据您的澄清(不知道如果我理解正确的话): Simpliest方法是使用Outlook这一过程。

在outlook pst文件夹中创建,在里面创建电子邮件,然后备份完整的pst文件(然后全部在一个文件中)或单独将电子邮件导出为.msg文件(每个电子邮件1个文件)。

尝试直接从应用程序写入pst文件或msg文件可能非常困难,因为这些文件的格式没有描述。

如果你想使用Outlook进行这个过程,请确认。

+0

我们有类似于outlook软件的c#windows应用程序,它同步电子邮件,撰写新的,回复和回复所有条款。我们必须以Outlook兼容格式创建备份所有使用IMAP和POP3服务器的数据库电子邮件。所以我们可以恢复他们的前景。 –