使用C#设置Outlook自动回复签名仅部分生效的问题
Outlook回复/转发邮件默认签名不显示问题(C#设置)
我尝试用C#为Outlook设置新邮件和回复/转发的默认签名,新邮件签名显示正常,但回复或转发邮件时签名不显示。
存在两点反常情况:
- 在Outlook签名管理器中,回复的默认签名已正确设置。若切换为其他签名再切回“Auto_Signature”,功能即可正常工作,说明签名本身无问题。
- 新邮件签名与回复签名的设置代码完全一致,但前者可正常生效。
以下是用于设置默认签名的代码:
using Microsoft.Office.Interop.Word; private void ApplyDefaultSignatureExecuted(object? obj) { var signaturesFolder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "Microsoft\\Signatures"); var fileName = Path.Combine(signaturesFolder, "Auto_Signature.htm"); using (var writer = new StreamWriter(fileName)) { writer.WriteLine("<html><body>"); writer.WriteLine("<div><p><i></span></b></p></div>"); writer.WriteLine(HttpUtility.HtmlEncode("Signature that was generated via C#")); writer.WriteLine("</i></p><p><b><span style='font-size:24.0pt'>"); writer.WriteLine(HttpUtility.HtmlEncode("Name goes here")); writer.WriteLine("</span></b></p></div>"); writer.WriteLine("</body></html>"); } Application oWord = new Application(); EmailOptions oOptions = oWord.Application.EmailOptions; oOptions.EmailSignature.NewMessageSignature = "Auto_Signature"; // 用于设置自动回复签名的代码行 oOptions.EmailSignature.ReplyMessageSignature = "Auto_Signature"; // 释放Word对象,不确定是否有效,加不加结果都一样 System.Runtime.InteropServices.Marshal.ReleaseComObject(oOptions); System.Runtime.InteropServices.Marshal.ReleaseComObject(oWord); }
附带相关截图说明:
- 回复邮件:签名未自动显示
- 签名管理器:C#已正确设置默认签名,切换后可正常工作
- 新邮件:签名自动显示
查阅资料后,此代码逻辑应可正常运行,但实际并非如此。使用的是Office 365,若更换库能解决问题也可接受。
内容的提问来源于stack exchange,提问作者Jumbala
相关产品推荐
相关产品推荐

