KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何在 Outlook 中一次發送多封草稿郵件?

作者Xiaoyang修改日期

如果您的「草稿」資料夾中有許多草稿郵件,想一次全部發送,而不必逐一傳送,該如何在 Outlook 中快速又輕鬆地完成這項操作?

使用 VBA 程式碼在 Outlook 中一次發送所有草稿郵件


使用 VBA 程式碼在 Outlook 中一次發送所有草稿郵件

下列 VBA 程式碼可協助您一次從「草稿」資料夾發送所有或選定的草稿郵件,請依照以下步驟操作:

1. 按住 ALT + F11 鍵,即可開啟 Microsoft Visual Basic for Applications 視窗!

2. 接著點擊插入> 模組,並將下方程式碼複製貼上至開啟的空白模組中,如下圖所示:

VBA 程式碼:在 Outlook 中一次發送所有草稿郵件:

Sub SendAllDraftEmails()
Dim xAccount As Account
Dim xDraftFld As Folder
Dim xItemCount As Integer
Dim xCount As Integer
Dim xDraftsItems As Outlook.Items
Dim xPromptStr As String
Dim xYesOrNo As Integer
Dim i As Long
Dim xCurFld As Folder
Dim xTmpFld As Folder
On Error Resume Next
xItemCount = 0
xCount = 0
Set xTmpFld = Nothing
Set xCurFld = Application.ActiveExplorer.CurrentFolder
For Each xAccount In Outlook.Application.Session.Accounts
    Set xDraftFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderDrafts)
    xItemCount = xItemCount + xDraftFld.Items.Count
    If xDraftFld.EntryID = xCurFld.EntryID Then
        Set xTmpFld = xCurFld.Parent
    End If
Next xAccount
Set xDraftFld = Nothing
If xItemCount > 0 Then
   xPromptStr = "Are you sure to send out all the drafts?"
    xYesOrNo = MsgBox(xPromptStr, vbQuestion + vbYesNo, "Kutools for Outlook")
    If xYesOrNo = vbYes Then
        If Not xTmpFld Is Nothing Then
            Set Application.ActiveExplorer.CurrentFolder = xTmpFld
        End If
        VBA.DoEvents
        For Each xAccount In Outlook.Application.Session.Accounts
            Set xDraftFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderDrafts)
            Set xDraftsItems = xDraftFld.Items
            For i = xDraftsItems.Count To 1 Step -1
                If xDraftsItems.Item(i).Recipients.Count <> 0 Then
                    xDraftsItems.Item(i).sEnd
                    xCount = xCount + 1
                End If
            Next
        Next xAccount
        VBA.DoEvents
        Set Application.ActiveExplorer.CurrentFolder = xCurFld
        MsgBox "Successfully sent " & xCount & " messages", vbInformation, "Kutools for Outlook"
    End If
Else
    MsgBox "No Drafts!", vbInformation + vbOKOnly, "Kutools for Outlook"
End If
End Sub
使用 VBA 程式碼在 Outlook 中一次傳送所有草稿郵件的步驟

3. 接著儲存程式碼,並按下 F5 鍵執行此程式碼,此時將彈出提示方塊,詢問您是否要發送所有草稿,請點擊,如下圖所示:

使用 VBA 程式碼在 Outlook 中一次傳送所有草稿郵件的步驟

4. 在成功發送草稿郵件後,將彈出對話方塊,提醒您已成功發送多少封草稿郵件,如下圖所示:

使用 VBA 程式碼在 Outlook 中一次傳送所有草稿郵件的步驟

5. 點擊確定按鈕後,「草稿」資料夾中的所有郵件將一次發送完畢,如下圖所示:

使用 VBA 程式碼在 Outlook 中一次傳送所有草稿郵件的步驟

注意事項:

1. 上述程式碼會自動從您 Outlook 的所有帳戶中發送所有草稿郵件。

2. 若您只想從「草稿」資料夾中發送特定幾封郵件,請使用下列 VBA 程式碼:

VBA 程式碼:從「草稿」資料夾發送選定的郵件:

Sub SendSelectedDraftEmails()
Dim xSelection As Selection
Dim xPromptStr As String
Dim xYesOrNo As Integer
Dim i As Long
Dim xAccount As Account
Dim xCurFld As Folder
Dim xDraftsFld As Folder
Dim xTmpFld As Folder
Dim xArr() As String
Dim xCount As Integer
Dim xMail As MailItem
On Error Resume Next
xCount = 0
Set xTmpFld = Nothing
Set xCurFld = Application.ActiveExplorer.CurrentFolder
For Each xAccount In Outlook.Application.Session.Accounts
    Set xDraftsFld = xAccount.DeliveryStore.GetDefaultFolder(olFolderDrafts)
    If xDraftsFld.EntryID = xCurFld.EntryID Then
        Set xTmpFld = xCurFld.Parent
    End If
Next xAccount
If xTmpFld Is Nothing Then
    MsgBox "The current folder is not a draft folder", vbInformation, "Kutools for Outlook"
    Exit Sub
End If
Set xSelection = Outlook.Application.ActiveExplorer.Selection
If xSelection.Count > 0 Then
    xPromptStr = "Are you sure to send out the selected " & xSelection.Count & " draft item(s)?"
    xYesOrNo = MsgBox(xPromptStr, vbQuestion + vbYesNo, "Kutools for Outlook")
    If xYesOrNo = vbYes Then
        ReDim xArr(xSelection.Count - 1)
        For i = 1 To xSelection.Count
            xArr(i - 1) = xSelection.Item(i).EntryID
        Next
        Set Application.ActiveExplorer.CurrentFolder = xTmpFld
        VBA.DoEvents
        For i = 0 To UBound(xArr)
            Set xMail = Application.Session.GetItemFromID(xArr(i))
            If xMail.Recipients.Count <> 0 Then
                xMail.sEnd
                xCount = xCount + 1
            End If
        Next
        VBA.DoEvents
        Set Application.ActiveExplorer.CurrentFolder = xCurFld
        MsgBox "Successfully sent " & xCount & " messages", vbInformation, "Kutools for Outlook"
    End If
Else
    MsgBox "No items selected!", vbInformation, "Kutools for Outlook"
End If
End Sub

Outlook 中的 AI 郵件助理:聰明回覆、清晰溝通,一鍵輕鬆搞定!

透過 Kutools for Outlook 的 AI 郵件助理,輕鬆簡化您每日的 Outlook 工作!這款強大工具能學習您過往的郵件內容,提供智慧又精準的回覆建議、優化郵件文字,並協助您毫不費力地起草與潤飾訊息。
doc ai 電子郵件處理

此功能支援:

  • 智慧回覆:根據您過往的對話,量身打造精準到位的回應,立即可用。
  • 內容強化:自動優化您的郵件文字,提升清晰度與影響力。
  • 輕鬆撰寫:只需提供關鍵字,其餘交給 AI 處理,並支援多種潤色風格。
  • 智慧擴充:根據上下文提供貼心建議,延伸您的創意與想法。
  • 摘要功能:立即獲取長篇郵件的簡明摘要。
  • 全球溝通:輕鬆將郵件翻譯成任何語言。

此功能支援:

  • 智慧郵件回覆
  • 優化內容
  • 關鍵字草稿
  • 智慧內容擴充
  • 郵件摘要
  • 多語言翻譯

別再等待——立即下載 AI 郵件助理,盡情享受


相關文章:

如何在 Outlook 中逐一寄送電子郵件給多位收件者?

如何透過 Outlook,根據 Excel 名單寄送個人化的大量電子郵件?

如何在 Outlook 中將行事曆個別寄送給多位收件者?

如何在 Outlook 中寄送電子郵件給多位收件者,同時隱藏彼此的聯絡資訊?


最佳 Office 生產力工具

體驗全新 Kutools for Outlook,內含 100+ 項超強功能!立即點擊下載!

🤖KUTOOLS AI運用先進 AI 技術,輕鬆處理電子郵件——無論是回覆、摘要、優化、擴充、翻譯還是撰寫郵件,通通一鍵搞定!

📧 郵件自動化自動答覆(支援 POP 與 IMAP)預約寄送郵件寄信時依規則自動抄送密送自動轉發(高級規則)自動加入問候語自動將多收件人郵件拆分為個別訊息……

📨 郵件管理撤回郵件依主旨等條件封鎖詐騙郵件刪除重複郵件高級搜尋整合文件夾……

📁 附件專業版批次儲存批次解除附加批次壓縮自動保存自動拆離自動壓縮……

🌟 介面魔法😊更多精美酷炫表情符號重要郵件來到時提醒您最小化 Outlook 而非關閉……

👍 一鍵奇蹟帶附件全部答復防釣魚郵件🕘顯示發送者當前時間時區……

👩🏼‍🤝‍👩🏻 聯絡人與行事曆從選取的郵件中批次新增聯絡人將聯繫人組拆分為個別群組移除生日提醒……

用您的慣用語言暢享 Kutools — 完整支援英文、西班牙文、德文、法文、中文等 40 多種語言!

立即一鍵解鎖 Kutools for Outlook!別再等待,馬上下載,全面提升工作效率!

kutools for outlook features1kutools for outlook features2

🚀 一鍵下載 — 立即取得所有 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