Outlook中点击Reply/Reply All时能否自动插入发件人姓名问候语
Outlook回复自动插入指定问候语实现方案
完全可以实现,根据你使用的Outlook版本和权限限制,有两类成熟方案可选:
方案一:VBA宏自动触发(适配Windows端Outlook 2016/2019/365/2021,点击默认Reply/Reply All按钮自动生效)
这个方案可以直接捕获默认的回复、全部回复事件,不需要改变原有操作习惯,触发后自动插入问候语:
- 打开Outlook客户端,按
Alt+F11快捷键调出VBA编辑器 - 在左侧项目导航栏依次展开
Project1 > Microsoft Outlook Objects > ThisOutlookSession,双击该条目打开代码编辑区 - 将以下代码完整粘贴到编辑区中:
Private WithEvents objInspectors As Outlook.Inspectors Private WithEvents objCurrentMail As Outlook.MailItem Private Sub Application_Startup() Set objInspectors = Application.Inspectors End Sub Private Sub objInspectors_NewInspector(ByVal Inspector As Inspector) If TypeName(Inspector.CurrentItem) = "MailItem" Then Set objCurrentMail = Inspector.CurrentItem End If End Sub ' 捕获单回复事件 Private Sub objCurrentMail_Reply(ByVal Response As Object, Cancel As Boolean) Call AddGreetingToReply(Response, objCurrentMail.SenderName) End Sub ' 捕获全部回复事件 Private Sub objCurrentMail_ReplyAll(ByVal Response As Object, Cancel As Boolean) Call AddGreetingToReply(Response, objCurrentMail.SenderName) End Sub Sub AddGreetingToReply(objReplyMail As Object, senderFullName As String) Dim pureSenderName As String ' 处理发件人名为邮箱地址的情况,提取@前的字符作为称呼 pureSenderName = senderFullName If InStr(pureSenderName, "@") > 0 Then pureSenderName = Split(pureSenderName, "@")(0) End If ' 兼容HTML格式邮件,在正文最顶部插入问候语 objReplyMail.HTMLBody = "<p>您好," & pureSenderName & ",</p>" & objReplyMail.HTMLBody End Sub
- 按
Ctrl+S保存代码后关闭VBA编辑器 - 调整宏权限:打开「文件 > 选项 > 信任中心 > 信任中心设置 > 宏设置」,选择「对所有宏进行通知」,重启Outlook后选择启用该宏即可正常使用。
注意:Mac端Outlook对VBA的事件支持不完整,该方案无法在Mac端生效,建议使用下方的快速步骤方案。
方案二:快速步骤半自动化方案(全平台全版本通用,无需启用宏)
如果你的设备被组策略限制无法启用宏,可以用Outlook自带的快速步骤功能实现,仅需替换原有点击回复的操作习惯即可:
- 打开Outlook主页选项卡,找到「快速步骤」功能区,选择「新建 > 自定义」
- 为新建的快速步骤命名,例如「带问候回复」
- 操作类型选择「回复」或「全部回复」,点击「显示更多选项」
- 在正文输入框的最开头填入
您好,<发件人>,,Outlook会自动识别<发件人>为内置变量,生成回复时自动替换为原邮件发件人的显示名称 - 保存设置后,后续需要回复邮件时,直接点击对应快速步骤按钮,即可自动生成带指定问候语的回复邮件。
内容的提问来源于stack exchange,提问作者Fusion Terror
相关产品推荐
相关产品推荐

