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

如何在 Outlook 中根据收件人自动切换签名?

作者Siluvia修改日期

默认情况下,Outlook 内置了一个功能,可让用户在通过不同电子邮件账户发送邮件时自动切换签名。除此之外,本文还将为您介绍如何根据 Outlook 中“收件人”字段的不同,自动更换签名的方法。

使用 VBA 代码根据收件人自动更换签名


使用 VBA 代码根据收件人自动更换签名

请按照以下步骤,在 Outlook 发送邮件时为不同的收件人自动应用相应的签名。

1. 首先,您需要在 Outlook 中关闭自动附加签名功能。请点击文件 > 选项,即可打开 Outlook 选项窗口。

2. 在 Outlook 选项窗口左侧选择邮件,然后在撰写邮件部分点击签名按钮。见下图:

使用 VBA 根据收件人自动更改签名,附代码

3. 在签名和信纸对话框中,切换到选择默认签名栏目下的电子邮件签名选项卡,在电子邮件帐户下拉列表中选择电子邮件帐户,然后将新邮件回复/转发下拉列表都设置为(无)。重复此操作,直到所有账户都设置为(无)。最后,点击确定按钮。

使用 VBA 代码根据收件人自动更改签名

注意:您也可以在此签名和信纸对话框中创建所需的签名。

4. 在返回 Outlook 选项窗口时,点击确定按钮。

5. 请按下 Alt+F11 键,即可打开 Microsoft Visual Basic for Applications 窗口。

6. 在 Microsoft Visual Basic for Applications 窗口左侧双击 ThisOutlookSession,即可打开代码窗口,并将下方 VBA 代码粘贴到该窗口。见截图:

使用 VBA 代码根据收件人自动更改签名

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 Object LibraryMicrosoft Scripting Runtime 选项,随后点击确定按钮。见截图:

使用 VBA 代码根据收件人自动更改签名

8. 按下 Alt+Q 键,即可关闭 Microsoft Visual Basic for Applications 窗口。

从现在起,每当您编写邮件并点击发送按钮后,系统将会根据“收件人”栏中的邮箱地址,自动在邮件正文末尾插入对应的签名。


Outlook 发送邮件时自动插入当前日期为签名:

如果您希望在 Outlook 中新建、回复或转发邮件时,将时间戳作为签名自动插入邮件正文,只需启用 Kutools for Outlook 中的新建、回复与转发邮件时自动添加日期签名选项即可。见下图:
立即下载试用(30 天免费体验))

使用 VBA 代码根据收件人自动更改签名


最佳办公效率工具

体验全新 Kutools for Outlook,畅享 100+ 强大功能!立即点击下载,不容错过!

🤖KUTOOLS AI采用先进 AI 技术,轻松处理邮件,涵盖回复、摘要、优化、扩展、翻译及撰写等功能。

📧 邮件自动化自动答复(支持 POP 和 IMAP)/定时发送邮件/发送邮件时按规则自动抄送密送/自动转发(高级规则)/自动添加称呼/自动将多收件人邮件拆分为单独信息……

📨 邮件管理撤回邮件/按主题等条件拦截诈骗邮件/删除重复邮件/高级搜索/整合文件夹……

📁 附件增强批量保存/批量分离/批量压缩/自动保存/自动拆离/自动压缩……

🌟 界面魔法😊更多美观时尚表情/重要邮件到达时提醒您/最小化 Outlook 而不是直接关闭……

👍 一键精彩功能带附件全部答复/反钓鱼邮件/🕘显示发送者当前时间时区……

👩🏼‍🤝‍👩🏻 联系人与日历批量从选定邮件中提取添加联系人/将联系人组拆分为个人组/移除生日提醒……

在您的首选语言中畅享 Kutools —— 支持英语、西班牙语、德语、法语、中文等 40 多种语言!

一键解锁 Kutools for Outlook,告别等待,立即下载,让效率倍增!

kutools for outlook 功能1kutools for outlook 功能2

🚀 一键下载 — 即可获取全部 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