我做了一些为用户生成签名的东西,但现在我还想将其设置为默认签名。这将自动添加到您正在撰写或回复的新电子邮件中。
我无法找到任何形式或参考我如何做到这一点。 有人可以指出我正确的方向。
答案 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 [](可用于设置任何属性)。