Skip to main content

Kutools for Office — 一套工具,五種功能。完成更多工作。

如何在Outlook中建立新郵件時為多個郵件帳號添加不同的簽名檔?

Author Amanda Li Last modified

從教程:Outlook中的郵件簽名,您應該知道如何在Outlook中創建簽名。然而,在創建新的簽名後,您需要通過選擇郵件窗口中的答覆 > 已創建的簽名手動將該簽名添加到新郵件中。

當然,您可以通過點擊「答覆」 > 「簽名」,並為特定郵件帳號選擇一個簽名(如下所示),讓Outlook在您創建新郵件時自動添加簽名。

steps of adding different signatures to multiple email accounts when create a new email in Outlook

但是,如果您有多個郵件帳號,並且希望為這些帳號批量添加不同的簽名,該怎麼辦呢?在本教程中,我將介紹一種VBA方法,幫助您輕鬆完成此操作。


在Outlook中建立新郵件時為多個郵件帳號添加不同的簽名檔

1. 在您的Outlook中,按下Alt + F11鍵以打開Microsoft Visual Basic for Applications窗口。

2. 在Microsoft Visual Basic for Applications窗口中,雙擊項目窗格中的ThisOutlookSession,並將以下VBA代碼複製到ThisOutlookSession(代碼)窗口中。參見截圖:

steps of adding different signatures to multiple email accounts when create a new email in Outlook

VBA代碼:在Outlook中建立新郵件時為多個郵件帳號添加不同的簽名檔 - ThisOutlookSession

Public WithEvents GInspectors As Inspectors
Public WithEvents GExplorer As Explorer

Private Sub Application_Startup()
  Set GInspectors = Application.Inspectors
  Set GExplorer = Application.ActiveExplorer
End Sub

Private Sub GExplorer_InlineResponse(ByVal Item As Object)
‘Update by ExtendOffice
Dim xMail As MailItem
On Error Resume Next
EndTimer
If Item.Class = olMail Then
  Set xMail = Item
  Set GInspector = Nothing
  Set GInspector = xMail.GetInspector
  StartTimer
End If
End Sub

Private Sub GInspectors_NewInspector(ByVal Inspector As Inspector)
  On Error Resume Next
  EndTimer
  Set GInspector = Nothing
  Set GInspector = Inspector
  StartTimer
End Sub

3. 在Microsoft Visual Basic for Applications窗口中,點擊插入 > 模組。然後將以下VBA代碼複製到模組窗口中。

steps of adding different signatures to multiple email accounts when create a new email in Outlook

VBA代碼:在Outlook中建立新郵件時為多個郵件帳號添加不同的簽名檔 - 模組

Public Declare PtrSafe Function SetTimer Lib "user32" (ByVal HWnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As LongPtr) As Long
Public Declare PtrSafe Function KillTimer Lib "user32" (ByVal HWnd As Long, ByVal nIDEvent As Long) As Long
Public TimerID As Long
Public GInspector As Inspector

Sub StartTimer()
  On Error Resume Next
  TimerID = SetTimer(0&, 0&, 1000&, AddressOf TimerProc)
End Sub

Sub EndTimer()
  On Error Resume Next
  KillTimer 0&, TimerID
End Sub

Sub TimerProc(ByVal HWnd As Long, ByVal uMsg As Long, ByVal nIDEvent As Long, ByVal dwTimer As Long)
  On Error Resume Next
  Call SetSignatureToAccount
  EndTimer
End Sub

Sub SetSignatureToAccount()
‘Update by ExtendOffice
Dim xMail As MailItem
Dim xSignatureFile, xSignaturePath As String
Dim xSubject As String
Dim xDoc As Document
Dim xAccount As Account
Dim xIsNew As Boolean
Dim xInspector As Inspector
Const PR_SMTP_ADDRESS As String = "http://schemas.microsoft.com/mapi/proptag/0x39FE001E"
On Error Resume Next
xSignaturePath = CreateObject("WScript.Shell").SpecialFolders(5) + "\Microsoft\Signatures\"
xSubject = GInspector.Caption
Set xDoc = GInspector.WordEditor
xIsNew = False
Set xMail = GInspector.CurrentItem
Select Case xMail.Parent.Parent
  Case "name1@example.com" 'Replace the email address in double quotes
    If VBA.InStr(xSubject, "RE: ") = 1 Then
      Exit Sub
    ElseIf VBA.InStr(xSubject, "FW: ") = 1 Then
      Exit Sub
    Else
      xSignatureFile = xSignaturePath & "Signature1.htm" 'Replace "Signature1" with your actual signature name
      xIsNew = True
    End If
  Case "name2@example.com" 'Replace the email address in double quotes
    If VBA.InStr(xSubject, "RE: ") Then
      Exit Sub
    ElseIf VBA.InStr(xSubject, "FW: ") Then
      Exit Sub
    Else
      xSignatureFile = xSignaturePath & "Signature2.htm" 'Replace "Signature2" with your actual signature name
      xIsNew = True
    End If
  'Add more Cases for more email accounts
End Select
If xIsNew = True Then
  With xDoc.Application.Selection
    .WholeStory
    .EndKey
    .InsertParagraphAfter
    .MoveDown Unit:=wdLine, Count:=1
    .InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
  End With
Else
  With xDoc.Application.Selection
    .MoveRight Unit:=wdCharacter, Count:=1
    .HomeKey Emptyparam, Emptyparam
    .InsertFile FileName:=xSignatureFile, Link:=False, Attachment:=False
  End With
End If
Set xDoc = Nothing
Set GInspector = Nothing
Set xMail = Nothing
End Sub
注意:
  • 1) 您應將第39行和第48行中的name1@example.comname2@example.com替換為您的實際郵件地址。
  • 2) 您應將第45行和第54行中的Signature1Signature2替換為您的實際簽名名稱。
  • 3) 使用上述VBA代碼,我們可以為兩個郵件帳號添加簽名。如果您有更多的帳號,請用更多的Case替換代碼的第57行:
  • Case "name@example.com"
    If VBA.InStr(xSubject, "RE: ") = 1 Then
    Exit Sub
    ElseIf VBA.InStr(xSubject, "FW: ") = 1 Then
    Exit Sub
    Else
    xSignatureFile = xSignaturePath & "Signature.htm"
    xIsNew = True
    End If

4. 在Microsoft Visual Basic for Applications窗口中,點擊工具 > 引用,勾選Microsoft Word 16.0 Object Library旁的框,然後點擊確定

steps of adding different signatures to multiple email accounts when create a new email in Outlook

5. 重新啟動Outlook,並保存VBA代碼。

6. 現在,當您使用已設置簽名的郵件帳號創建新郵件時,對應的簽名將自動添加。

注意:如果您發現創建新郵件時有兩個簽名被添加,請在郵件窗口中點擊「答覆」 > 「簽名」。在選擇默認簽名部分,選擇具有兩個簽名的郵件帳號,並從新郵件下拉列表中選擇(無)

steps of adding different signatures to multiple email accounts when create a new email in Outlook

相關文章

如何在Outlook中導入或插入HTML簽名檔?

例如,您從網站下載了一些HTML簽名檔,並希望將它們導入到您的Outlook中。有什麼簡單的方法嗎?本文將逐步指導您如何將HTML簽名檔導入或插入到Outlook中。

如何在Outlook簽名檔中插入背景顏色?

在Outlook郵件中添加或刪除背景顏色很容易。但是,如何在Outlook簽名檔中插入或刪除背景顏色呢?以下解決方案將幫助您解決這個問題:

如何在Outlook中回覆或轉寄時為多個郵件帳號添加不同的簽名檔?

如果您希望Outlook在回覆或轉寄郵件時自動添加簽名,則需要通過點擊「答覆」>「簽名」,並為特定郵件帳號選擇一個簽名(如下所示)來配置默認簽名。但是,如果您有多個郵件帳號,並且希望為這些帳號批量添加不同的簽名,該怎麼辦呢?在本教程中,我將介紹一種VBA方法,幫助您輕鬆完成此操作。

如何在Outlook中為回覆和轉寄設置不同的簽名檔?

通常,您可以在Outlook中為不同的帳號設置不同的簽名檔,但您是否嘗試過為回覆和轉寄應用不同的簽名檔?這意味著,當您回覆郵件時,插入signature1,而當您轉寄郵件時,應用signature2。您如何在Outlook中解決這個問題呢?


最佳辦公室生產力工具

最新消息:Kutools for Outlook 推出免費版本!

體驗全新 Kutools for Outlook,超過100項精彩功能!立即下載!

🤖 Kutools AI 採用先進的AI技術輕鬆處理郵件,包括答覆、摘要、優化、擴充、翻譯及撰寫郵件。

📧 郵件自動化自動回覆(支援POP及IMAP) / 排程發送郵件 / 發送郵件時根據規則自動抄送密送 / 自動轉發(高級規則) / 自動添加問候語 / 自動分割多收件人郵件為個別郵件 ...

📨 郵件管理撤回郵件 / 根據主題等方式阻止詐騙郵件 / 刪除重複郵件 / 高級搜索 / 整合文件夾 ...

📁 附件專業工具批量保存 / 批量拆離 / 批量壓縮 / 自動保存 / 自動拆離 / 自動壓縮 ...

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

👍 一鍵便利帶附件全部答復 / 防詐騙郵件 / 🕘顯示發件人時區 ...

👩🏼‍🤝‍👩🏻 聯絡人與日曆從選中郵件批量添加聯絡人 / 分割聯絡人組為個別組 / 移除生日提醒 ...

以您偏好的語言使用 Kutools,支援英語、西班牙語、德語、法語、中文及超過40種其他語言!

只需點擊一次,即可立即解鎖 Kutools for Outlook。別等了,現在下載提升您的工作效率!

kutools for outlook features1 kutools 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