在用户下载之前以编程方式在服务器上预填充 "Outlook form "

Prefilling "Outlook form " programatically on server before user downloads it

我有一个现有的 Outlook 表单,它已经有预定义的逻辑、命名字段和组合框。 此表格是不同公寓的标准输入,因此我不允许以会破坏他们处理的方式更改表格。

我需要做的是在我拥有可用信息的服务器端动态预填充表单的某些字段,并将其作为 .msg 文件提供给最终用户。 然后用户可以修改一些字段,包括我预填的字段和其他字段。

我的问题是,是否有任何 API 或 "find & replace" 技巧可以用来在我的服务器上以编程方式预填充 Outlook 表单的属性?如果它有任何帮助,那就是价值观。

我尝试了一种简单的方法,将 $NAME$ 放入 属性 值中,然后进行简单的文本替换,但之后 Outlook 无法打开 .msg - 我假设有一些校验和或内部数据结构中的依赖关系。

首选平台是 .NET 或 Java,但其他选项也可以。

Outlook 对象模块可以使用 Namespace.OpenSharedItem 打开 MSG 文件,但不能从服务(例如 IIS)使用 OOM。
您可以使用扩展 MAPI(仅限 C++ 或 Delphi)使用 OpenIMsgOnIStg
打开和修改 MSG 文件 对于 .Net 或 Java,您可以使用 Redemption (I am its author) and its RDOSession.GetMessageFromMsgFile method (returns RDOMail 对象)。您可以使用 RDOMail.Fields[] 修改属性,然后通过调用 RDOMail.Save.
保存 MSG 文件 您可以在 OutlookSpy 中查看现有的 MAPI 属性及其 DASL 名称(单击 OpenIMsgOnIStg 按钮)。