在 Outlook 中新建邮件时,如何为多个电子邮件账户分别设置不同的签名?
教程来源:Outlook 邮件签名,您应该已经了解如何在 Outlook 中创建签名。但新建签名后,您需要在邮件窗口中,手动选择签名 > 创建的签名,将其添加到新邮件中。
当然,您也可以点击签名> 签名,为特定电子邮件帐户选择签名,Outlook 会自动为您添加签名,如下图所示。

但是,如果您拥有多个电子邮件账户,并希望为每个账户批量添加不同的签名,该如何操作呢?本教程将为您介绍一种 VBA 方法,助您轻松实现这一目标。
在 Outlook 中创建新建邮件时,为多个电子邮件帐户添加不同签名
1. 在 Outlook 中,按下 Alt+F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。
2. 在 Microsoft Visual Basic for Applications 窗口中,双击项目窗格中的 ThisOutlookSession,然后将以下 VBA 代码复制到 ThisOutlookSession(代码)窗口中。如图所示:

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

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

5. 重启 Outlook,并保存您的 VBA 代码。
6. 现在,每当您使用已设置签名的电子邮件账户创建新邮件时,系统都会自动添加相应的签名。
注意:如果您发现创建新邮件时,电子邮件账户中出现了两个签名,请点击签名> 签名,在信息窗口的“选择默认签名”部分,选择包含两个签名的电子邮件账户,然后在“新邮件下拉列表”下选择(无)。

相关文章
例如,您从网站下载了一些 HTML 签名,想要将其导入 Outlook。有没有快捷的方法呢?本文将为您详细介绍如何将 HTML 签名导入或插入到 Outlook 中。
在 Outlook 邮件中添加或删除背景颜色非常简单。那么,如何在 Outlook 签名中插入或移除背景颜色呢?以下方法将为您提供有效的解决方案:
如何在回复或转发邮件时,为多个电子邮件账户分别设置不同的签名?
如果您希望 Outlook 在回复或转发邮件时自动添加签名,只需点击“签名”>“签名”,并为指定的电子邮件帐户选择相应的签名,设置为默认签名即可,如下所示。但如果您拥有多个电子邮件帐户,并希望为多个帐户批量添加不同的签名,该如何操作呢?本教程将为您介绍一种 VBA 方法,助您轻松实现这一需求。
通常,您可以在 Outlook 中为不同账户设置不同的签名,但您是否尝试过为回复和转发分别设置不同的签名?也就是说,回复邮件时插入签名 1,转发邮件时使用签名 2. 在 Outlook 中,该如何实现这一操作?
最佳办公效率工具
体验全新 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