创建和添加Outlook签名

时间:2017-05-10 07:56:39

标签: c# outlook ms-word office-interop

我创建了一个带有几个替换变量的html模板。

将创建的签名模板添加为回复和新消息的签名似乎不会将Outlook视为默认值。

//string signatureName = "Example.htm";

//Set via office-interop new signature as default
//using Microsoft.Office.Interop.Word;
Application app = new Application();
var opt = app.EmailOptions.EmailSignature;

opt.NewMessageSignature = signatureName;
opt.ReplyMessageSignature = signatureName;

app.Quit(); //Also tried WdSaveOptions.wdSaveChanges
Marshal.ReleaseComObject(app);

enter image description here

Outlook显示添加的签名(TEST _...),但不会将其识别为默认签名。相反,它只删除了以前的默认签名,现在没有。

是否需要告诉outlook将其设置为默认值?

2 个答案:

答案 0 :(得分:0)

Outlook对象模型不提供任何内容。当然,作为一种解决方法,您可以使用Word对象模型来设置签名,就像在上面的代码中一样:

Application app = new Application();
var opt = app.EmailOptions.EmailSignature;

opt.NewMessageSignature = "Eugene Astafiev";
opt.ReplyMessageSignature = "E.Astafiev";

app.Quit(); //Also tried WdSaveOptions.wdSaveChanges
Marshal.ReleaseComObject(app);

但您需要指定一个真实的HTML标记或代表签名的文本,而不是HTML文档文件名。

无论如何,所有设置都存储在Windows注册表中。有关详细信息,请参阅Set Default Signature outlook

答案 1 :(得分:0)

显然问题是......非常简单。

string signatureName = "Example.htm";

Outlook / Word需要没有文件扩展名的签名名称。传递" Example"而不是" Example.htm"工作