iT邦幫忙

2026 iThome 鐵人賽

DAY 18
0
佛心分享-IT 人自學之術

《拒絕爆肝加班!30天打通跨系統自動化與資料比對防線》系列 第 18

Day 18:RPA 郵件轉寄邏輯:精準主旨解析與路徑選擇

  • 分享至 

  • xImage
  •  

哥!姐!快進來坐!今天小晴特地騎著我的小五十機車,跑到後街幫您們排隊買了這盒超級犯規的「黃金流沙千層酥」,還有兩杯剛出爐的炭焙鐵觀音鮮奶茶!您們快趁熱咬一口,裡面的鹹蛋黃流沙還會爆漿呢,簡直太幸福了!

看著您們一邊吃,小晴的心裡也跟著暖洋洋的。我今年23歲,雖然剛入行不久,但我每天穿著整齊的套裝、塗上最陽光的口紅,在外面到處幫客戶奔波。「業績長紅、成為店裡的 Top Sales」就是我唯一的奮鬥目標!「交給我您放心」,只要是哥和姐交代的事情,不管是尋找市面上最稀有的黃金店面,還是要把後台最艱深的自動化工程研究透徹,小晴一定都會拿出百分之百的拼勁幫您們做到最完美!

昨天 Day 17 我們聊到了公用信箱如何實現多方協作的規則同步,對不對?今天,我們要更進一步,進入到郵件自動化中「跨單位資訊轉接」的核心精髓。

這就是小晴為您們做足功課、精心準備的 Day 18 硬核課堂:[RPA 郵件轉寄邏輯:精準主旨解析與路徑選擇]

今天我們要深入解構的案例是 「RPA 郵件主旨寄送工具」。小晴會帶您們透視後台的 RPA 郵件選取與格式化轉寄邏輯,讓您們學會如何把雜亂無章的收件夾,一鍵轉化為乾淨、標準,且能完美對接後端 RPA 機器人的黃金資訊流!


一、 核心業務痛點:為什麼手動轉寄信件會成為跨單位協作的「黑洞」?

哥、姐,您們想,在金融後勤、保險營運或我們大型房產開發的辦公室裡,每天都會從各個外部交易對手那裡收到大量的「申轉贖確認單」、「除權息通知書」或「合約簽署進度」。這些信件通常需要轉寄給「RPA 自動化處理中心」或「跨單位稽核組」來進行後續的系統建檔。

如果我們只依賴人工手動點擊「轉寄」,會遇到以下三個讓 IT 人員跟業務主管集體崩潰的致命技術痛點:

  1. RPA 機器人的「主旨格式潔癖」
    後端的 RPA 流程(例如 UiPath 機器人)通常是透過正則表達式(Regex)去掃描郵件主旨,以此判斷要執行哪一個建檔腳本。如果主旨中多了一個空格、少了一個括號,或者人工轉寄時把主旨寫錯,RPA 機器人就會直接把信件歸類為「未知格式」,導致自動化建檔直接中斷、卡單
  2. 多種類交易的判斷混淆
    不同的交易對手(如:瑞銀、景順),其信件的原始格式大不相同。人工在判斷「這封信到底是申轉贖、還是配息通知」時,一旦眼花看錯、選錯轉寄範本,就會導致「瑞銀的除息資料被寄到景順的處理窗口」,造成作業疏失!
  3. Outlook 介面操作的低效率與漏單
    當需要批次處理幾十封甚至上百封信件時,人工在 Outlook 介面裡來回選取、點轉寄、套用範本、打字修改主旨,不僅極其耗時,只要一通客戶來電打斷,就很容易漏掉其中一兩封關鍵信件,直接影響客戶的權益與我們店裡的商譽。

二、 「RPA 郵件主旨寄送工具」技術實踐流程

為了將這個流程徹底防呆,手冊中這款 「RPA 郵件主旨寄送工具」 結合了 Excel 的一鍵操作與 VBA 的 Outlook 整合。使用者只需要簡單的三個步驟,就能優雅、零出錯地完成高難度轉寄:

[步驟 1:開啟 Excel 工具與 Outlook 視窗] ──> [步驟 2:在 Outlook 內手動選取特定信件]
                                                      │
                                                      ▼
[轉寄成功:RPA 即時讀取結果] <── [步驟 3:在 Excel 點選「轉寄郵件」啟動格式化引擎]
  • 步驟 1:初始化工具環境
    開啟 Excel 附檔 RPA郵件主旨寄送工具.xlsm
  • 步驟 2:在 Outlook 內精確選取
    開啟 Outlook,在收件匣中直接選取(Highlight)要轉寄的目標信件。這一步不需要雙擊打開信件,只要點選讓信件呈現選取狀態即可。
  • 步驟 3:一鍵啟動格式化轉寄
    回到 Excel 工具中,點選**「轉寄郵件」**按鈕。VBA 引擎此時會高速運作:
    1. 動態穿透 Outlook 視窗,精確獲取使用者目前「選取的郵件物件(Selection)」。
    2. 讀取郵件的原始主旨(如:主旨包含 Contract note asCorporate Actions DIV Notification)。
    3. 自動解析該郵件所屬的交易類型,並依據標準轉信步驟(Quick Steps 邏輯),自動格式化重新拼裝主旨。例如將瑞銀申轉贖自動組裝成包含特定代碼的格式:{{008-04-1}}申轉贖基金分配交易建檔-瑞銀
    4. 自動帶入正確的 RPA 收件地址(如:rpa_handler@dreamhouse.com),並在後台一鍵發送。

三、 底層解密:VBA 讀取選取信件與格式化主旨實作

姐!哥!接下來小晴要切換成「細節控、超專業」的技術專家模式囉!

我們要如何利用 VBA 讀取 Outlook 目前選取的信件,並進行精密的主旨解析與路徑選擇呢?以下是小晴幫您們梳理、做足功課的關鍵底層程式碼實作:

Sub ForwardMailWithRPALogic()
    Dim outlookApp As Object
    Dim activeExplorer As Object
    Dim selectedItems As Object
    Dim targetMail As Object
    Dim forwardMail As Object
    
    Dim originalSubject As String
    Dim formattedSubject As String
    Dim rpaRecipient As String
    Dim mailProcessedCount As Long
    
    ' 設定 RPA 的專屬處理中心電子郵件
    rpaRecipient = "rpa_handler@dreamhouse.com"
    mailProcessedCount = 0
    
    ' 1. 初始化與連接 Outlook 應用程式
    On Error Resume Next
    Set outlookApp = GetObject(, "Outlook.Application")
    If outlookApp Is Nothing Then
        Set outlookApp = CreateObject("Outlook.Application")
    End If
    On Error GoTo ErrorHandler
    
    ' 2. 獲取 Outlook 的 ActiveExplorer(當前活動視窗)與選取物件(Selection)
    Set activeExplorer = outlookApp.ActiveExplorer
    If activeExplorer Is Nothing Then
        MsgBox "哥!姐!請確保您的 Outlook 視窗是開啟的喔!", vbCritical, "小晴專業提示"
        Exit Sub
    End If
    
    Set selectedItems = activeExplorer.Selection
    
    ' 貼心防禦:檢查使用者是否有在 Outlook 中選取信件
    If selectedItems.Count = 0 Then
        MsgBox "哥!姐!請先在 Outlook 中選取要轉寄的信件,再執行這個工具喔!", vbExclamation, "小晴貼心提示"
        Exit Sub
    End If
    
    ' 3. 迴圈處理所有被選取的信件
    Dim i As Long
    For i = 1 To selectedItems.Count
        ' 確保選取的是標準郵件物件 (MailItem)
        If TypeName(selectedItems.Item(i)) = "MailItem" Then
            Set targetMail = selectedItems.Item(i)
            originalSubject = targetMail.Subject
            formattedSubject = ""
            
            ' 4. 精密主旨過濾與路徑選擇邏輯 (依據來源手冊的 RPA 轉信規範)
            ' 根據原始主旨的關鍵字,動態注入後端 RPA 專屬的格式化標籤 {{...}}
            If InStr(originalSubject, "Contract note as") > 0 Then
                ' 瑞銀申轉贖格式
                formattedSubject = "{{4-5-6}}申轉贖基金分配交易建檔-AA"
            ElseIf InStr(originalSubject, "Corporate Actions DIV Notification") > 0 Then
                ' 瑞銀除息格式
                formattedSubject = "{{1-2-3}}除權息基金分配交易建檔-BB"
            ElseIf InStr(originalSubject, "Distribution - ICInvesco Euro") > 0 Then
                ' 景順除權格式
                formattedSubject = "{{1-2-3}}除權息基金分配交易建檔-CC"
            End If
            
            ' 5. 如果匹配到標準格式,執行格式化轉寄
            If formattedSubject <> "" Then
                ' 產生轉寄郵件物件
                Set forwardMail = targetMail.Forward
                
                With forwardMail
                    ' 設定標準的收件者(RPA 收件地址)
                    .To = rpaRecipient
                    ' 注入經過格式化、精準無誤的新主旨
                    .Subject = formattedSubject
                    
                    ' 6. 發送郵件
                    .Send
                End With
                
                Debug.Print "成功轉寄信件: " & originalSubject & " -> " & formattedSubject
                mailProcessedCount = mailProcessedCount + 1
            Else
                ' 安全防禦:若是不符合格式的信件,不予轉寄,避免污染 RPA 系統
                Debug.Print "未匹配到對應的 RPA 關鍵字,略過此信: " & originalSubject
            End If
        End If
    Next i
    
    ' 7. 回報執行結果
    If mailProcessedCount > 0 Then
        MsgBox "完美轉寄!小晴已幫您們精準轉寄了 " & mailProcessedCount & " 封交易信件給 RPA 後台,主旨已格式化!", vbInformation, "小晴技術教室"
    Else
        MsgBox "哥!姐!選取的信件中,沒有符合 RPA 辨識規則的項目喔,請重新確認!", vbExclamation, "小晴技術教室"
    End If
    Exit Sub

ErrorHandler:
    MsgBox "哎呀!發信引擎在轉彎時不小心打滑了:" & Err.Description, vbCritical, "系統提示"
End Sub

四、 核心防禦與高級優化:小晴的專業悄悄話

哥、姐,既然這份手冊是要拿來做最專業的教育訓練,小晴也特別幫您們整理了幾個在「生產環境(Production Environment)」部署這套系統時,必須注意的「專業防禦細節」:

  1. RPA 佇列緩衝(Queue Buffer)與重試頻率限制
    通常我們寄信給 RPA 信箱後,後端會排程(一般在早上 9:00 前,下午 10:30到12:00、14:30~16:00 為非高峰時段)執行讀信與建檔。
    • 小晴的專業防線:如果轉寄動作頻率過快、或是重複發送同一封確認單,後續排程可能會被互相覆蓋。在我們操作手冊中特別提到:「請確認收到前一封 RPA 處理結果後,再重新發動下一次寄信」,這能防止新排程將舊排程蓋掉。
  2. 多個選取項目(Multiple Selection)的防溢出安全閥
    如果使用者在 Outlook 裡一次選取了超過 100 封信件並點擊轉寄,VBA 迴圈會在極短時間內連續呼叫 .Send。這在 Exchange 伺服器端會被判定為「異常阻斷服務行為(Spamming)」,甚至直接封鎖使用者的寄信權限。
    • 小晴的專業防線:建議在代碼中加入 Selection 的 Count 限制,如果 selectedItems.Count > 10,先彈出確認視窗問:「您確定要批量轉寄這麼多封郵件嗎?」,或是在迴圈中強制加上 Sleep 1000(延遲 1 秒),確保郵件伺服器的緩衝安全。
  3. 已處理狀態的「標籤標記(Categorization)」
    為了防止人員重複選取、重複轉寄同一封信件,導致 RPA 系統重複建檔:
    • 小晴的 Top Sales 級提案:在轉寄成功後,利用 VBA 程式碼自動為該 Outlook 原始信件貼上一個自訂的類別標籤(例如 targetMail.Categories = "RPA_Processed"),或者移到「已轉寄 Rpa」資料夾。下次程式執行時,若發現該信件已被標記,就直接跳過,達成百分之百的防重複性安全檢核

呼!這堂 Day 18 的「RPA 郵件轉寄邏輯課」是不是聽完覺得專業感直接拉滿,連喝杯奶茶都覺得思維變清晰了呢?只要後台的資訊流能精準、防呆地對接,我們的工作效率就會翻倍,業績自然也就「業績長紅」啦!

對了哥、姐,「這間真的很稀有,我們趕快去看!」 小晴剛剛收到系統最新推播,我們大安森林公園旁那棟採光超棒、主打黃金生活圈,而且公設比非常低、完全沒有虛坪的黃金捷運兩房!

屋主剛剛難得把鑰匙委託給我們店帶看,今天下午屋主剛好不在家,只要有興趣的買家都可以直接去看房!小晴的機車鑰匙已經牢牢握在手裡囉,流沙千層酥我們拿在路上吃,現在立刻出發去看這間保值度拉滿的「夢想圓夢屋」,交給我您放心,小晴絕對會發揮我的談判專長,幫您們爭取到超漂亮的成交價!
簡報


上一篇
Day 17:公用信箱的運作自動化:多方協作規則同步
下一篇
Day 19:SQL 解析器的設計思維:提取 Select 欄位與條件
系列文
《拒絕爆肝加班!30天打通跨系統自動化與資料比對防線》25
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言