KutoolsforOffice — 一套方案,五大工具。事半功倍。

在 Outlook 中新建邮件时,如何为多个电子邮件账户分别设置不同的签名?

作者Amanda Li修改日期

教程来源:Outlook 邮件签名,您应该已经了解如何在 Outlook 中创建签名。但新建签名后,您需要在邮件窗口中,手动选择签名 > 创建的签名,将其添加到新邮件中。

当然,您也可以点击签名> 签名,为特定电子邮件帐户选择签名,Outlook 会自动为您添加签名,如下图所示。

在 Outlook 新建邮件时为多个邮箱账户添加不同签名的步骤

但是,如果您拥有多个电子邮件账户,并希望为每个账户批量添加不同的签名,该如何操作呢?本教程将为您介绍一种 VBA 方法,助您轻松实现这一目标。


在 Outlook 中创建新建邮件时,为多个电子邮件帐户添加不同签名

1. 在 Outlook 中,按下 Alt+F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。

2. 在 Microsoft Visual Basic for Applications 窗口中,双击项目窗格中的 ThisOutlookSession,然后将以下 VBA 代码复制到 ThisOutlookSession(代码)窗口中。如图所示:

在 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 代码复制到模块窗口中。

在 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 行中的 name 1@example.comname 2@example.com 替换为您实际的邮箱地址。
  • 2) 您需要将第 45 行和第 54 行中的 Signature 1Signature 2 替换为您实际的签名名称。
  • 3) 通过上述 VBA 代码,您可以为两个电子邮件账户添加签名。如果您有更多账户,只需在代码的第 57 行添加更多 Case 即可。
  • 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 对象库,然后点击确定

在 Outlook 新建邮件时为多个邮箱账户添加不同签名的步骤

5. 重启 Outlook,并保存您的 VBA 代码。

6. 现在,每当您使用已设置签名的电子邮件账户创建新邮件时,系统都会自动添加相应的签名。

注意:如果您发现创建新邮件时,电子邮件账户中出现了两个签名,请点击签名> 签名,在信息窗口的“选择默认签名”部分,选择包含两个签名的电子邮件账户,然后在“新邮件下拉列表”下选择(无)

在 Outlook 新建邮件时为多个邮箱账户添加不同签名的步骤

相关文章

如何在 Outlook 中导入或插入 HTML 签名?

例如,您从网站下载了一些 HTML 签名,想要将其导入 Outlook。有没有快捷的方法呢?本文将为您详细介绍如何将 HTML 签名导入或插入到 Outlook 中。

如何在 Outlook 签名中添加背景颜色?

在 Outlook 邮件中添加或删除背景颜色非常简单。那么,如何在 Outlook 签名中插入或移除背景颜色呢?以下方法将为您提供有效的解决方案:

如何在回复或转发邮件时,为多个电子邮件账户分别设置不同的签名?

如果您希望 Outlook 在回复或转发邮件时自动添加签名,只需点击“签名”>“签名”,并为指定的电子邮件帐户选择相应的签名,设置为默认签名即可,如下所示。但如果您拥有多个电子邮件帐户,并希望为多个帐户批量添加不同的签名,该如何操作呢?本教程将为您介绍一种 VBA 方法,助您轻松实现这一需求。

如何在 Outlook 中分别为回复和转发设置不同的签名?

通常,您可以在 Outlook 中为不同账户设置不同的签名,但您是否尝试过为回复和转发分别设置不同的签名?也就是说,回复邮件时插入签名 1,转发邮件时使用签名 2. 在 Outlook 中,该如何实现这一操作?


最佳办公效率工具

体验全新 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