如何在 Outlook 中根據收件人自動切換簽名檔?
預設情況下,Outlook 已內建根據不同電子郵件帳戶自動切換簽名檔的功能。除此之外,本文將進一步教您如何依據「收件者」欄位中的不同對象,自動變更簽名檔。
使用 VBA 程式碼根據收件人自動變更簽名檔
請依照下列步驟,在 Outlook 中寄送電子郵件時,為不同收件人套用專屬的簽名檔。
1. 首先,請停用 Outlook 中自動附加簽名檔的功能:點選檔案 > 選項,即可開啟 Outlook 選項視窗。
2. 在 Outlook 選項視窗中,於左側窗格選取郵件,然後點擊位於撰寫郵件區段中的簽名檔按鈕。詳見截圖:

3. 在簽名檔與信箋對話方塊中,切換至電子郵件簽名檔索引標籤下的選擇預設簽名檔區段,在電子郵件帳戶下拉列表中選取一個電子郵件帳戶,然後分別從新郵件和回覆/轉寄的下拉式清單中選擇(無)。重複上述步驟,直到所有帳戶均設定完成,再點選確定按鈕。

注意:您也可以在這個簽名檔與信箋對話方塊中,立即建立所需的簽名檔!
4. 返回 Outlook 選項視窗後,請點選確定按鈕。
5. 按下 Alt+F11 鍵,即可開啟 Microsoft Visual Basic for Applications 視窗!
6. 在左側窗格中雙擊 ThisOutlookSession,即可開啟程式碼視窗;接著,將下方的 VBA 程式碼複製到該視窗中。詳見截圖: 在 Microsoft Visual Basic for Applications 視窗中

VBA 程式碼:在 Outlook 中根據收件人自動變更簽名檔
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'Updated by ExtendOffice 2022/08/01
Dim xMailItem As MailItem
Dim xRecipients As Recipients
Dim xRecipient As Recipient
Dim xRcpAddress As String
Dim xSignatureFile, xSignaturePath As String
Dim xFSO As Scripting.FileSystemObject
Dim xDoc As Document
Dim xFindStr As String
On Error Resume Next
Set xFSO = New Scripting.FileSystemObject
If Item.Class <> olMail Then Exit Sub
Set xMailItem = Item
Set xRecipients = xMailItem.Recipients
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
For Each xRecipient In xRecipients
If xRecipient.AddressEntry.AddressEntryUserType = olExchangeUserAddressEntry Then
xRcpAddress = xRecipient.AddressEntry.GetExchangeUser.PrimarySmtpAddress
Else
xRcpAddress = xRecipient.AddressEntry.Address
End If
Select Case xRcpAddress
Case "Email Address 1"
xSignatureFile = xSignaturePath & "aaa.htm"
Exit For
Case "Email Address 2", "Email Address 3"
xSignatureFile = xSignaturePath & "bbb.htm"
Exit For
Case "Email Address 4"
xSignatureFile = xSignaturePath & "ccc.htm"
Exit For
End Select
Next
VBA.DoEvents
Set xDoc = xMailItem.GetInspector.WordEditor
xFindStr = "From: " & xMailItem.Recipients.Item(1).Name & " <" & xRcpAddress & ">"
If VBA.InStr(1, xMailItem.Body, xFindStr) <> 0 Then
xDoc.Application.Selection.HomeKey Unit:=wdStory, Extend:=wdMove
With xDoc.Application.Selection.Find
.ClearFormatting
.Text = xFindStr
.Execute Forward:=True
End With
With xDoc.Application.Selection
.MoveLeft wdCharacter, 2
.InsertParagraphAfter
.MoveDown Unit:=wdLine, Count:=1
End With
Else
With xDoc.Application.Selection
.EndKey Unit:=wdStory, Extend:=wdMove
.InsertParagraphAfter
.MoveDown Unit:=wdLine, Count:=1
End With
End If
xDoc.Application.Selection.InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
End Sub
注意事項:
- 1)。在 VBA 程式碼中,請將「郵箱地址 1/2/3/4」替換為收件人的專屬郵箱地址。
- 2)。 「aaa.htm」、「bbb.htm」和「ccc.htm」是您將傳送給對應收件人的指定簽名檔。
- 3)。在此情況下,簽名檔「aaa」將傳送給「郵箱地址 1」,簽名檔「bbb」將傳送給「郵箱地址 2」和「郵箱地址 3」,而「郵箱地址 4」將收到內嵌簽名檔「ccc」的電子郵件。請依您的需求進行調整。
- 4)。如果一封電子郵件中有多位收件人,此程式碼僅會考慮第一位收件人。在此情況下,其他收件人將收到與第一位收件人相同簽名檔的電子郵件。
7. 接著按一下工具> 參考設定,以開啟參考設定 —— 專案對話方塊。在對話方塊中,請勾選 Microsoft Word 物件庫與 Microsoft Scripting Runtime 選項,然後按一下確定按鈕。詳見截圖:

8. 按下 Alt+Q 鍵,即可關閉 Microsoft Visual Basic for Applications 視窗。
從現在起,當您撰寫完電子郵件並點擊「傳送」按鈕後,系統將根據「收件者」欄位中收件人的郵箱地址,自動在郵件本文末尾插入對應的簽名檔。
在 Outlook 中寄送電子郵件時自動插入目前日期作為簽名檔:
若您希望在 Outlook 中建立、回覆或轉寄郵件時,自動於郵件本文插入時間戳記作為簽名檔,只需啟用建立新郵件、回覆及轉寄時新增日期簽名檔選項即可輕鬆達成!詳見截圖:Kutools for Outlook 立即下載試用(30 天免費試用)
))

最佳 Office 生產力工具
體驗全新 Kutools for Outlook,內含 100+ 項超強功能!立即點擊下載!
🤖KUTOOLS AI:運用先進 AI 技術,輕鬆處理電子郵件——無論是回覆、摘要、優化、擴充、翻譯還是撰寫郵件,通通一鍵搞定!
📧 郵件自動化:自動答覆(支援 POP 與 IMAP)/預約寄送郵件/寄信時依規則自動抄送密送/自動轉發(高級規則)/自動加入問候語/自動將多收件人郵件拆分為個別訊息……
📨 郵件管理:撤回郵件/依主旨等條件封鎖詐騙郵件/刪除重複郵件/高級搜尋/整合文件夾……
📁 附件專業版:批次儲存/批次解除附加/批次壓縮/自動保存/自動拆離/自動壓縮……
🌟 介面魔法:😊更多精美酷炫表情符號/重要郵件來到時提醒您/最小化 Outlook 而非關閉……
👍 一鍵奇蹟:帶附件全部答復/防釣魚郵件/🕘顯示發送者當前時間時區……
👩🏼🤝👩🏻 聯絡人與行事曆:從選取的郵件中批次新增聯絡人/將聯繫人組拆分為個別群組/移除生日提醒……
用您的慣用語言暢享 Kutools — 完整支援英文、西班牙文、德文、法文、中文等 40 多種語言!
立即一鍵解鎖 Kutools for Outlook!別再等待,馬上下載,全面提升工作效率!


🚀 一鍵下載 — 立即取得所有 Office 增益集
強烈推薦:Kutools for Office(5 合 1)
一鍵下載五個安裝程式,一次完成 — Kutools for Excel、Outlook、Word、PowerPoint 與 Office Tab Pro!立即點擊下載!
- ✅ 一鍵便利:只需一次操作,即可下載全部五個安裝套件!
- 🚀 隨時應對任何 Office 任務:按需安裝所需增益集,立即提升工作效率!
- 🧰 包含:Kutools for Excel/Kutools for Outlook/Kutools for Word/Office Tab Pro/Kutools for PowerPoint