Day 13

智慧郵件分流器

Programmatic Outlook Rules

以「交易確認單郵件規則設定工具」為例


解析如何透過 VBA 達成大規模郵件的精準歸類

每日的郵件海嘯

在日常的交易與後勤作業中,信箱隨時都在接收各種通知:

申轉贖確認

大量合約與交易狀態回報單

除權息通知

各家基金公司的分配明細

系統警示

排程結果與報表產出通知

傳統手動分類的困境

面對上述海量信件,依賴人工處理或逐一設定 Outlook 規則會遭遇:

  • 耗時費力: 每新增一家對手機構,就要手動點選建立新規則。
  • 容易出錯: 關鍵字設定錯誤(如漏打空格),導致信件漏接。
  • 無法交接: 員工異動時,接手人難以複製前人的幾百條分類規則。

程式化思維:讓機器代勞

與其在 Outlook 介面上點擊幾百次,不如:

「將規則邏輯寫在表格,由程式自動掛載」

這就是開發「郵件規則設定工具」的核心精神。

Outlook Rules 自動化

Outlook 提供強大的規則引擎,我們只需將設定過程自動化:

  • 觸發條件: 偵測特定寄件人或「特定主旨字串」。
  • 執行動作: 自動將郵件移動至指定子資料夾。
  • 程式介面: 透過微軟 COM API,允許外部程式直接介入管理。

系統串接架構


Excel (UI/Data)
維護對應表
及關鍵字清單

VBA Engine
讀取資料並
發送建立指令

Outlook
動態生成
數十條收件規則

案例:交易確認單規則設定工具

專案範例

在日常作業中,各家基金公司寄送的「交易確認單」主旨格式不一,人工歸檔易錯。我們利用此工具實現:

  • 集中管理:在一個 Excel (.xlsm) 檔內維護所有關鍵字。
  • 一鍵部署:點選按鈕,幾秒內完成信箱規則的初始化與更新。
  • 擴充彈性:未來有新的交易機構,只需在表格新增一行即可。

邏輯:關鍵字與資料夾對映

工具的核心是一張二維對映表,定義了「主旨包含什麼字」就丟進「哪個資料夾」:

業務類別 信件主旨包含關鍵字 目標資料夾
申轉贖 Contract note as \交易確認\申轉贖區
除息作業 Corporate Actions DIV \交易確認\除息區
除權作業 Distribution - ICInvesco \交易確認\除權區

技術 1:操控 Outlook 物件

VBA 腳本中,我們必須先取得 Outlook Application 的控制權:


' 宣告並建立 Outlook 應用程式物件
Dim olApp As Object
Dim olNamespace As Object
Dim olFolder As Object

Set olApp = CreateObject("Outlook.Application")
Set olNamespace = olApp.GetNamespace("MAPI")

' 指向使用者的收件匣
Set olFolder = olNamespace.GetDefaultFolder(6) ' 6 代表 Inbox
                    

這段程式碼是打破 ExcelOutlook 藩籬的橋樑。

技術 2:動態生成規則

利用迴圈讀取表格後,呼叫 Rules.Create 動態綁定條件與動作:

  • Rule.Conditions.Subject:寫入從表格讀取的關鍵字。
  • Rule.Actions.MoveToFolder:指定信件最終歸宿。

優勢: 迴圈執行 100 次只需不到 3 秒,徹底取代人力點擊。

準備工作:建立目標資料夾

第一步:規劃您的 Outlook

在執行自動化之前,必須先在您的收件匣底下,建立好對應的實體資料夾階層。

  • 請依照業務邏輯分類。
  • 確保資料夾名稱與設定工具內的名稱完全一致

收件匣
└ 申轉贖
└ 除權息

執行設定:啟動腳本

開啟附檔 交易確認單郵件規則設定工具.xlsm

工具啟動後,將會跳出視窗,要求您逐一選定或確認對應的資料匣路徑。

驗證成果:確認規則建立

程式執行完畢後,請務必進行最後驗證:

  1. 回到 Outlook 主程式。
  2. 點選上方功能區的「檔案」 > 「管理規則及警示」。
  3. 查看規則列表: 檢查清單中是否已自動生成以 [工具產生] 為首的新規則。
  4. 勾選「立即對收件匣執行」,測試歷史信件是否精準分流。

導入自動化之效益

比較維度 傳統手動設定 程式自動化建立
時間成本 單筆約需 3 分鐘 (百筆需數小時) 一鍵執行,3 秒完成
正確性 易手誤、選錯資料夾 100% 依據表格對應
人員交接 新進人員須重新手動拉規則 交接單一 Excel 檔案即可

延伸應用場景

掌握了「信箱程式化控制」的技術,我們還可以擴展至:

RPA 前置作業

利用規則將信件自動轉寄給 RPA 信箱(如每日自動觸發申購流程)。

垃圾/外部信過濾

開發「外部郵件清檔工具」,批量刪除主旨含特定警語之無效信件。

Q&A

總結與交流

讓機器處理規律,將大腦留給決策。
感謝各位的參與!

End of Day 13 Training