繁体   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