Skip to main content

如何在Outlook回覆郵件時保留附件?

Author: Kelly Last Modified: 2025-05-13

在Microsoft Outlook中,當您轉寄電子郵件時,原始附件會保持不變。然而,當您回覆電子郵件時,Outlook會自動移除所有附件,假設它們在對話中是不必要的。這可能會讓人感到沮喪且效率低下,特別是當您需要引用重要文件、重新發送文檔或保留附件以獲得更好的上下文時。幸運的是,有幾種方法可以確保在Outlook回覆時附件仍然包含在內,無論您喜歡手動、一鍵式還是自動化解決方案:

通過手動複製和粘貼來回覆帶附件的郵件 基本但繁瑣

使用Kutools for Outlook一鍵回覆帶附件的郵件 ? 快速且毫不費力

使用VBA自動回覆帶附件的郵件 技術性且需要設置


通過手動複製和粘貼來回覆帶附件的郵件

您可以手動從郵件中複製附件並在發送之前將其粘貼到回覆消息中。

1. 打開Outlook,選擇您要回覆的郵件,並在閱讀窗格中預覽或在單獨的窗口中打開它。

2. 點擊任何附件,然後在附件選項卡下點擊全選 > 複製

the screenshot of step about replying with attachments by manually copying and pasting 1

3. 點擊回覆按鈕以打開回覆窗口。

the screenshot of step about replying with attachments by manually copying and pasting 2

4. 在回覆消息中,點擊消息正文中的任意位置並按下Ctrl + V或點擊消息選項卡上的粘貼以插入複製的附件。

the screenshot of step about replying with attachments by manually copying and pasting 3

5. 撰寫您的回覆,檢查附件,然後點擊發送

限制:

  • 手動且重複:不適合頻繁使用。
  • 耗時:每次都需要額外的步驟。
  • 容易出錯:您可能會忘記複製和粘貼附件。

? 輕鬆保存多封郵件的附件

厭倦了在 Outlook 中一封一封地保存附件嗎?使用 Kutools for Outlook 簡化您的工作流程!強大的「儲存附件」功能讓您只需點擊幾下,即可從多封郵件或整個資料夾中保存附件。告別繁瑣的手動操作,輕鬆掌控您的收件匣。

Save attachments in multiple emails

立即下載 Kutools for Outlook


使用Kutools for Outlook一鍵回覆帶附件的郵件 ?

為了快速且毫不費力地回覆帶附件的郵件,您可以使用Kutools for Outlook帶原始附件答覆功能允許您只需點擊一下即可保留原始附件進行回覆。

使用 Kutools for Outlook 解鎖極致郵件效率!永久免費獲取 70 項強大功能。立即下載免費版本

選擇包含您需要保留的附件的郵件。然後點擊Kutools > 帶原始附件答覆全部帶原始附件答覆

the screenshot of the Reply with Original Attachment or Reply All with Original Attachment button

就是這樣!回覆消息將自動包含原始郵件中的所有附件。只需撰寫您的消息並點擊發送

the screenshot of keeping attchments in replying email using Kutools for Outlook

為什麼使用Kutools for Outlook?

  • ✅ 節省時間:無需手動複製和粘貼附件。
  • ✅ 一鍵解決方案:即時回覆帶附件。
  • ✅ 使用方便:易於使用,不需要技術技能。
注意: 要應用 Kutools for Outlook的帶原始附件答覆工具,首先,您應該下載並安裝Kutools for Outlook

使用VBA自動回覆帶附件的郵件

對於熟悉VBA腳本的用戶,此方法可自動化帶附件回覆的過程。但是,它需要在Outlook中啟用宏並手動添加腳本。

? 重要提示: 在運行VBA宏之前,您需要在Outlook中啟用宏

第一步:打開VBA編輯器

1. 選擇您要回覆的郵件消息。

2. 按Alt + F11打開Microsoft Visual Basic for Applications窗口。

3. 在左側面板中,展開Project1 > Microsoft Outlook Objects。雙擊ThisOutlookSession以打開它。

the screenshot of the ThisOutlookSession option

第二步:插入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

第三步:運行VBA宏

1. 按F5或點擊運行按鈕以執行宏。

2. 在對話框中,選擇ThisOutlookSession.RunReplyAllWithAttachments以全部回覆或選擇ThisOutlookSession.RunReplyWithAttachments以回覆一個收件人。點擊運行

the screenshot of the Macros dialog box

結果

回覆窗口將打開並包含所有原始附件。只需撰寫您的消息並點擊發送

VBA方法的優缺點:

  • ✅ 自動化:無需手動複製和粘貼附件。
  • ❌ 需要VBA知識 :可能不適合初學者。
  • ❌ 宏默認被禁用 :您必須手動啟用它們。

結論:您應該選擇哪種方法?

以下是三種方法的比較,幫助您決定哪一種最適合您的需求:

方法最適合易用性效率
手動複製粘貼 偶爾使用 ⭐⭐⭐⭐ ⭐⭐
Kutools for Outlook 日常使用,非技術用戶 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
VBA宏 自動化愛好者,高級用戶 ⭐⭐⭐ ⭐⭐⭐⭐

對於大多數用戶來說,Kutools for Outlook是最好的選擇,因為它是最快捷、最簡單的方法來在Outlook中回覆帶附件的郵件。現在,您可以輕鬆地使用最適合您工作流程的方法在Outlook中回覆帶附件的郵件了!?


演示:使用Kutools for Outlook一鍵回覆帶附件的郵件

 

相關文章: