创建和添加 Outlook 签名

Creating and adding Outlook Signature

我创建了一个带有几个替换变量的 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);

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

是否还需要其他东西来告诉 outlook 将其设置为默认值?

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

显然问题是...很简单。

string signatureName = "Example.htm";

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