You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 19:00:53