KutoolsforOffice — 一套方案,五大工具。事半功倍。

在 Outlook 回复邮件时,如何保留原有附件?

作者Kelly修改日期

在 Microsoft Outlook 中,转发邮件时原始附件会被保留;但在回复邮件时,Outlook 默认会移除所有附件,认为这些文件在后续对话中已不再需要。对于需要查阅重要附件、重新发送文件或希望完整保留邮件沟通上下文的用户来说,这一设置既不便捷也影响效率。幸运的是,无论您偏好手动操作、一键快捷方式还是自动化方案,都有多种方法可以确保在 Outlook 回复邮件时继续保留附件:

带附件答复通过手动复制粘贴基础且繁琐

一键用 Kutools for Outlook 带附件答复回复 👍快速高效

带附件答复使用 VBA 自动处理技术性强且需配置


带附件答复手动复制粘贴

您可以手动将邮件中的附件复制,并在回复前将其粘贴到回复消息中。

1. 请打开 Outlook,选择需要回复的邮件,可在阅读窗格中预览,或单独打开到新窗口。

2. 点击任意一个附件,然后点击附件选项卡中的全选> 复制

手动复制粘贴附件回复邮件步骤的截图 1

3. 点击回复按钮,即可打开回复窗口。

手动复制粘贴附件回复邮件步骤的截图 2

4. 在回复邮件正文中任意位置点击,然后按下 Ctrl+V,或点击消息选项卡上的粘贴按钮,即可插入已复制的附件。

手动复制粘贴附件回复邮件步骤的截图 3

5. 检查附件后,编辑您的回复,点击发送即可。

局限性:

  • 手动且重复:不适合高频操作。
  • 耗时:每次都需额外操作,降低工作效率。
  • 容易出错:您可能会忘记复制或粘贴附件。

📂 轻松批量保存多封邮件的附件

还在 Outlook 中一封封邮件地手动保存附件吗?使用 Kutools for Outlook,让您的工作流程高效升级!强大的全部保存(附件)功能,只需几次点击,即可批量保存多封邮件或整个文件夹内的所有附件。告别繁琐操作,轻松掌控您的收件箱。

保存多封邮件中的附件

立即下载 Kutools for Outlook


一键用带附件答复 Kutools for Outlook 回复 👍

想要轻松快捷地带附件回复邮件,推荐使用 Kutools for Outlook 的“回复并保留原附件”功能,一键即可回复并保留所有原始附件。

告别 Outlook 低效!Kutools for Outlook 助您高效批量处理邮件——现已推出 30 天免费试用!立即下载 Kutools for Outlook!

选中包含需保留附件的邮件后,点击 Kutools > 回复并保留原附件全部回复并保留原附件即可。

带有‘带原始附件回复’或‘全部带原始附件回复’按钮的截图

就是这么简单!回复窗口会自动附带原始邮件中的所有附件。您只需编辑内容并点击发送即可。

使用 Kutools for Outlook 在回复邮件时保留附件的截图

为何选择 Kutools for Outlook?

  • ✅ 保存时间:无需手动复制和粘贴附件,轻松提升工作效率。
  • ✅ 一键解决方案:一键回复并自动携带附件,省时高效。
  • ✅ 用户友好:操作简便,无需任何技术基础。
注意 如需使用回复并保留原附件功能(Kutools for Outlook),请先下载安装 Kutools for Outlook

带附件答复使用 VBA 自动处理

如果您熟悉 VBA 脚本,可以通过此方法自动化带附件的回复流程。但需要在 Outlook 中启用宏,并手动添加相应代码。

💡 重要提示:运行 VBA 宏前,您需先启用宏在 Outlook 内。

步骤 1:打开 VBA 编辑器

1. 选中您希望回复的邮件。

2. 按下 Alt+F11,即可打开 Microsoft Visual Basic for Applications 窗口。

3. 在左侧面板展开 Project 1 > Microsoft Outlook Objects,双击 ThisOutlookSession 即可打开。

ThisOutlookSession 选项的截图

步骤 2:插入 VBA 代码

将以下 VBA 代码复制粘贴到 ThisOutlookSession 窗口中:

Sub RunReplyWithAttachments()
'Update by Extendoffice 20250224
    Dim xReplyItem As Outlook.MailItem
    Dim xItem As Object
    On Error Resume Next
    Set xItem = GetCurrentItem()
    If xItem Is Nothing Then Exit Sub
    Set xReplyItem = xItem.Reply
    CopyAttachments xItem, xReplyItem
    xReplyItem.Display
    Set xReplyItem = Nothing
    Set xItem = Nothing
End Sub

Sub RunReplyAllWithAttachments()
    Dim xReplyAllItem As Outlook.MailItem
    Dim xItem As Object
    Set xItem = GetCurrentItem()
    If xItem Is Nothing Then Exit Sub
    Set xReplyAllItem = xItem.ReplyAll
    CopyAttachments xItem, xReplyAllItem
    xReplyAllItem.Display
    Set xReplyAllItem = Nothing
    Set xItem = Nothing
End Sub

Function GetCurrentItem() As Object
    On Error Resume Next
    Select Case TypeName(Application.ActiveWindow)
        Case "Explorer"
            Set GetCurrentItem = Application.ActiveExplorer.Selection.Item(1)
        Case "Inspector"
            Set GetCurrentItem = Application.ActiveInspector.CurrentItem
    End Select
End Function

Sub CopyAttachments(SourceItem As MailItem, TargetItem As MailItem)
    Dim xFilePath As String
    Dim xAttachment As Attachment
    Dim xFSO As Object
    Dim xTmpFolder As Object
    Dim xFldPath As String
    Set xFSO = CreateObject("Scripting.FileSystemObject")
    Set xTmpFolder = xFSO.GetSpecialFolder(2)
    xFldPath = xTmpFolder.Path & "\"
    For Each xAttachment In SourceItem.Attachments
        If IsEmbeddedAttachment(xAttachment) = False Then
            xFilePath = xFldPath & xAttachment.Filename
            xAttachment.SaveAsFile xFilePath
            TargetItem.Attachments.Add xFilePath, , , xAttachment.DisplayName
            xFSO.DeleteFile xFilePath
        End If
    Next
    Set xFSO = Nothing
    Set xTmpFolder = Nothing
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
    Dim xAttParent As Object
    Dim xCID As String, xID As String
    Dim xHTML As String
    On Error Resume Next
    Set xAttParent = Attach.Parent
    xCID = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
    If xCID <> "" Then
        xHTML = xAttParent.HTMLBody
        xID = "cid:" & xCID
        If InStr(xHTML, xID) > 0 Then
            IsEmbeddedAttachment = True
        Else
            IsEmbeddedAttachment = False
        End If
    End If
End Function

步骤 3:运行 VBA 宏

1. 按下 F5,或点击运行按钮即可执行宏。

2. 在对话框中,选择 ThisOutlookSession.RunReplyAllWithAttachments 即可全部回复,或选择 ThisOutlookSession.RunReplyWithAttachments 即可回复单个收件人。点击运行立即执行。

宏对话框的截图

结果

回复窗口会自动保留所有原始附件。只需编辑内容,点击发送即可。

VBA 方法优缺点:

  • ✅ 自动化:告别手动复制粘贴附件,轻松高效完成操作。
  • ❌ 需要 VBA 知识:不太适合初学者,建议有一定基础后再尝试。
  • ❌ 宏默认被禁用:需手动启用宏。

总结:应该选择哪种方法?

以下三种方法横向对比,助您快速选出最适合自己的方案:

方法最佳适用对象易用性效率
手动复制粘贴偶尔使用⭐⭐⭐⭐⭐⭐
Kutools for Outlook日常使用,非技术用户⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐
VBA 宏自动化爱好者、高级用户⭐⭐⭐⭐⭐⭐⭐

对于大多数用户来说,Kutools for Outlook 是最佳选择,因为它是 在 Outlook 中带附件答复的最快、最简单方法。现在,您可以根据自己的习惯选择带附件答复的最佳方案,在 Outlook 中高效处理邮件!🚀


演示:一键用 Kutools for Outlook 带附件答复

 

相关文章:


最佳办公效率工具

体验全新 Kutools for Outlook,畅享 100+ 强大功能!立即点击下载,不容错过!

🤖KUTOOLS AI采用先进 AI 技术,轻松处理邮件,涵盖回复、摘要、优化、扩展、翻译及撰写等功能。

📧 邮件自动化自动答复(支持 POP 和 IMAP)/定时发送邮件/发送邮件时按规则自动抄送密送/自动转发(高级规则)/自动添加称呼/自动将多收件人邮件拆分为单独信息……

📨 邮件管理撤回邮件/按主题等条件拦截诈骗邮件/删除重复邮件/高级搜索/整合文件夹……

📁 附件增强批量保存/批量分离/批量压缩/自动保存/自动拆离/自动压缩……

🌟 界面魔法😊更多美观时尚表情/重要邮件到达时提醒您/最小化 Outlook 而不是直接关闭……

👍 一键精彩功能带附件全部答复/反钓鱼邮件/🕘显示发送者当前时间时区……

👩🏼‍🤝‍👩🏻 联系人与日历批量从选定邮件中提取添加联系人/将联系人组拆分为个人组/移除生日提醒……

在您的首选语言中畅享 Kutools —— 支持英语、西班牙语、德语、法语、中文等 40 多种语言!

一键解锁 Kutools for Outlook,告别等待,立即下载,让效率倍增!

kutools for outlook 功能1kutools for outlook 功能2

🚀 一键下载 — 即可获取全部 Office 加载项

强烈推荐:Kutools for Office(5 合 1)

一键下载五个安装包,即可同时获得 Kutools for Excel、Outlook、Word、PowerPointOffice Tab Pro立即点击下载!

  • 一键便捷:只需一次操作,即可下载全部五个安装包。
  • 🚀 轻松应对各类 Office 任务:随时按需安装所需插件,助您高效办公,不容错过!
  • 🧰 包含:Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint