设置默认签名前景

时间:2012-06-07 10:30:28

标签: c# outlook

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

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

3 个答案:

答案 0 :(得分:8)

我发现通过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);


    }

答案 1 :(得分:2)

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

在那个密钥中,我会有一个mutitple文件夹00000001,每个签名一个。 如果删除某人的Windows个人资料,则计数将再次从1开始。

在这里,如果你放置一个名为REG_Binary的 “新签名”或“回复转发签名” 该值应为十六进制格式的签名名称。 假设签名名称为Test,它将成为单词54 65 73 74。 reg键喜欢这样:
54006500730074000000000000000000000000

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

答案 2 :(得分:0)

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

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

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

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