如何在Outlook中自动向今天生日的联系人发送祝福消息?
有时,您可能希望在Outlook中当联系人的生日是今天时,自动向其发送祝福消息。如果逐一手动检查每个联系人的生日并发送祝福邮件,这将是一项繁琐的任务。本文将介绍一种VBA代码,帮助您快速轻松地解决这个问题。
使用Outlook中的VBA代码根据生日自动向联系人发送祝福消息
使用Outlook中的VBA代码根据生日自动向联系人发送祝福消息
要自动向今天生日的联系人发送祝福消息,首先需要插入一段VBA代码,然后创建一个定期任务来触发该代码。
以下步骤可能会对您有所帮助:
1. 启动Outlook,然后按住 ALT + F11 键打开 Microsoft Visual Basic for Applications 窗口。
2. 在 Microsoft Visual Basic for Applications 窗口中,双击 Project1(VbaProject.OTM) 窗格中的 ThisOutlookSession 打开模块,然后将以下代码复制并粘贴到空白模块中。
VBA代码:根据生日自动向联系人发送祝福消息:
Private Sub Application_Reminder(ByVal Item As Object)
Dim xTempMail As MailItem
Dim xFilePath As String
Dim xItems As Outlook.Items
Dim xItem As Object
Dim xContactItem As Outlook.ContactItem
Dim xTodayDate As String
Dim xBirthdayDate As String
Dim xGreetingMail As Outlook.MailItem
Dim xWordDoc As Word.Document
Dim xGreetings As String
Dim xBool As Boolean
xFilePath = CreateObject("shell.Application").NameSpace(5).self.Path & "\UserTemplates"
Set xFSO = CreateObject("Scripting.FileSystemObject")
If xFSO.FolderExists(xFilePath) = False Then
MkDir xFilePath
End If
If IsFileExists(xFilePath & "\Birthday Greeting Mail.oft") = False Then
Set xTempMail = Outlook.CreateItem(olMailItem)
xTempMail.SaveAs xFilePath & "\Birthday Greeting Mail.oft", olTemplate
xTempMail.Close olDiscard
End If
If (TypeOf Item Is TaskItem) And (Item.Subject = "Send Birthday Greeting Mail") Then
xGreetings = "Happy Birthday!"
xGreetings = InputBox("Input birthday greetings", "Kutools for Outlook", xGreetings)
xTodayDate = Month(Date) & "-" & Day(Date)
Set xItems = Outlook.Application.Session.GetDefaultFolder(olFolderContacts).Items
For Each xItem In xItems
If Not (TypeOf xItem Is ContactItem) Then Exit Sub
Set xContactItem = xItem
xBirthdayDate = Month(xContactItem.Birthday) & "-" & Day(xContactItem.Birthday)
If xBirthdayDate = xTodayDate Then
Set xGreetingMail = Outlook.Application.CreateItemFromTemplate(xFilePath & "\Birthday Greeting Mail.oft")
Set xWordDoc = xGreetingMail.GetInspector.WordEditor
xWordDoc.Range.InsertBefore "Dear " & xContactItem.LastName & Chr(10) & xGreetings & Chr(10) & Chr(10)
With xGreetingMail
.Recipients.Add (xContactItem.Email1Address)
.Subject = "Happy Birthday!"
.Display
.Close (olSave)
.Send
End With
End If
Next
End If
End Sub
Function IsFileExists(ByVal FileName As String) As Boolean
Dim xFileSystem As Object
Set xFileSystem = CreateObject("Scripting.FileSystemObject")
If xFileSystem.FileExists(FileName) = True Then
IsFileExists = True
Else
IsFileExists = False
End If
End Function

3. 然后点击 Microsoft Visual Basic for Applications 窗口中的 工具 > 引用,在弹出的 References-Project1 对话框中,从 可用引用 列表框中勾选 Microsoft Word 对象库 和 Microsoft 脚本运行时 选项,见截图:

4. 然后点击 确定 关闭对话框,现在,您应该创建一个任务来触发VBA代码。请转到 任务 窗格,点击 新建任务 创建一个任务:
(1.) 在 主题 行中,输入主题为 发送生日祝福邮件;
(2.) 然后点击 任务 标签下的 重复周期;
(3.) 在 任务重复周期 对话框中,选择 按天 并在 定期模式 部分指定 每 1 天 选项;

5. 然后点击 确定 关闭对话框,返回任务窗口,请按照以下截图所示设置定期任务的提醒:

6. 从现在开始,当提醒弹出时,宏将立即被触发。会弹出一个对话框提醒您插入生日祝福,如下图所示:

7. 然后点击 确定 按钮,系统将自动向今天生日的联系人发送祝福邮件。
最佳 Office 办公效率工具
最新消息:Kutools for Outlook 推出免费版!
体验全新 Kutools for Outlook,超过100 种强大功能!立即点击下载!
🤖 Kutools AI :采用先进的 AI 技术,轻松处理邮件,包括答复、总结、优化、扩展、翻译和撰写邮件。
📧 邮箱自动化:自动答复(支持 POP 和 IMAP) /计划发送邮件 /发送邮件时按规则自动抄送密送 / 自动转发(高级规则) / 自动添加问候语 / 自动将多收件人的邮件分割为单独邮件 ...
📨 邮件管理:撤回邮件 / 按主题及其他条件阻止欺诈邮件 / 删除重复邮件 / 高级搜索 / 整合文件夹 ...
📁 附件增强:批量保存 / 批量拆离 / 批量压缩 / 自动保存 / 自动拆离 / 自动压缩 ...
🌟 界面魔法:😊更多美观酷炫的表情 /重要邮件到达时提醒 / 最小化 Outlook 而非关闭 ...
👍 一键高效操作:带附件全部答复 / 防钓鱼邮件 / 🕘显示发件人时区 ...
👩🏼🤝👩🏻 联系人与日历:批量添加选中邮件中的联系人 / 分割联系人组为单独的组 / 移除生日提醒 ...
可根据您偏好选择 Kutools 使用语言——支持英语、西班牙语、德语、法语、中文及40 多种其他语言!
只需点击一下即可立即激活 Kutools for Outlook。无需等待,立即下载,提升工作效率!


🚀 一键下载——获取所有 Office 插件
强烈推荐:Kutools for Office(五合一)
一键下载五个安装包: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