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

如何在Outlook回复邮件中移除HTML正文签名上方自动生成的行?

解决Outlook回复邮件时移除签名上方自动生成空行的问题

我现有一段VBA代码,在创建新邮件时可以移除签名上方自动生成的空行:

Sub sig_and_email_send()
    Dim OutApp As Object
    Dim OutMail As Object
    Dim signature As String

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    Set OutApp = CreateObject("Outlook.Application")
    Set OutMail = OutApp.CreateItem(0)

    ' 获取邮件默认签名
    With OutMail
        ' 2 = HTML格式
        .BodyFormat = 2
        .Display
        ' 删除签名前的空白行
        signature = Replace(OutMail.HTMLBody, "<p class=MsoNormal><o:p>&nbsp;</o:p></p>", "")
        ' 清空邮件内容后关闭(放弃更改)
        OutMail.HTMLBody = Replace(OutMail.HTMLBody, OutMail.HTMLBody, "")
        OutMail.Close 1
    End With
    
    On Error Resume Next
    With OutMail
        .to = "email@email.com"
        .CC = "email@email.com"
        .BCC = "email@email.com"
        .Subject = "Subject"
        .Attachments.Add "\\network\folder\documents\file.xlsx"
        .HTMLBody = .HTMLBody & "Hi," & "whateveryourtextis" & _
        "<br>" & "Thanks," & "<br><br>" & signature
        .Display ' 也可使用 .Send 直接发送
    End With
    On Error GoTo 0

    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With

    Set OutMail = Nothing
    Set OutApp = Nothing
End Sub

但这段代码在回复邮件时无法正常运行,我需要实现回复邮件时也能删除这些自动生成的行。


适配回复场景的修改代码

针对回复邮件的场景,调整代码逻辑,直接基于选中的邮件生成回复并处理空行:

Sub RemoveSigSpaceInReply()
    Dim OutApp As Object
    Dim OriginalMail As Object
    Dim ReplyMail As Object

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    Set OutApp = CreateObject("Outlook.Application")
    ' 获取当前在Outlook中选中的邮件
    Set OriginalMail = OutApp.ActiveExplorer.Selection.Item(1)
    ' 生成该邮件的回复
    Set ReplyMail = OriginalMail.Reply

    With ReplyMail
        .BodyFormat = 2 ' 设置为HTML格式
        .Display
        ' 移除签名上方的自动空行
        .HTMLBody = Replace(.HTMLBody, "<p class=MsoNormal><o:p>&nbsp;</o:p></p>", "")
        ' 可自定义添加回复内容,示例如下
        .HTMLBody = "Hi," & "<br>" & "这是我的回复内容" & "<br><br>" & .HTMLBody
    End With

    With Application
        .EnableEvents = True
        .ScreenUpdating = True
    End With

    Set ReplyMail = Nothing
    Set OriginalMail = Nothing
    Set OutApp = Nothing
End Sub

关键修改说明

  • 替换原代码创建新邮件的逻辑,改为获取当前选中的邮件并生成回复项
  • 直接在回复邮件的HTMLBody中替换目标空行,无需额外提取签名再拼接(回复邮件默认会自动带上签名)
  • 若需要添加自定义回复内容,可调整.HTMLBody的拼接顺序,确保内容显示在签名上方

内容的提问来源于stack exchange,提问作者Gianni

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 06:55:17