设置默认签名前景

我做了一些为用户生成签名的东西,但现在我还想将其设置为默认签名。 这将自动添加到您正在编写或回答的新电子邮件中。

我无法找到任何forms或参考我如何做到这一点。 请有人指出我正确的方向。

我发现通过VSTO Word对象设置签名更容易:

static void SetDefault(string signature) { Word.Application oWord = new Word.Application(); Word.EmailOptions oOptions; oOptions = oWord.Application.EmailOptions; oOptions.EmailSignature.NewMessageSignature = signature; oOptions.EmailSignature.ReplyMessageSignature = signature; //Release Word if (oOptions != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(oOptions); if (oWord != null) System.Runtime.InteropServices.Marshal.ReleaseComObject(oWord); } 

找到了一种使用注册表项执行此操作的方法。 密钥位于HKCU \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Windows messaging Subsystem \ Profiles [OutlookProfilename] \ 9375CFF0413111d3B88A00104B2A6676

在那个键中,对于每个签名,我会有一个mutitple文件夹00000001。 如果删除某人的Windows配置文件,则计数再次从1开始。

在此处,如果您放置名为“新签名”或“回复转发签名”的REG_Binary,则该值应为hex格式的签名名称。 假设签名名称是Test将成为
54 65 73 74hex。 reg键喜欢这样:
54006500730074000000000000000000000000

我希望我这样说清楚:D很难找到这个:D

每个帐户签名的名称存储在可通过IOlkAccountManager MAPI界面访问的帐户配置文件数据中。 由于该接口是扩展MAPI,因此只能使用C ++或Delphi进行访问。

Outlook对象模型不会公开签名或访问帐户上的任意属性。

您可以在OutlookSpy中查看数据 – 单击IOlkAccountManager,双击该帐户,新建和回复签名名称将分别位于属性0x0016001F和0x0017001F中。

可以使用IOlkAccount接口上的扩展MAPI(C ++或Delphi)设置这些属性。 您还可以使用Redemption (任何语言)设置它们 – RDOAccount对象公开NewMessageSignature和Reply属性以及Fields [](可用于设置任何属性)。