Перейти к основному содержанию

 Как автоматически отправить приветственное сообщение контакту, если его день рождения сегодня в Outlook?

Иногда вы можете захотеть автоматически отправить приветственное сообщение контакту, когда его день рождения сегодня в Outlook. Это будет утомительной работой, если вы будете проверять день рождения контакта один за другим и отправлять приветственные электронные письма вручную. В этой статье я представлю код VBA, чтобы быстро и легко решить эту проблему.

Автоматическая отправка приветственного сообщения контакту в зависимости от его дня рождения с помощью кода VBA в Outlook


Автоматическая отправка приветственного сообщения контакту в зависимости от его дня рождения с помощью кода VBA в Outlook

Чтобы автоматически отправить приветственное сообщение контакту, если его день рождения сегодня, сначала вставьте код VBA, а затем вам нужно создать повторяющуюся задачу для запуска кода.

Вам могут помочь следующие шаги:

1. Запустите Outlook, а затем удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.

2. В Microsoft Visual Basic для приложений окно, дважды щелкните Эта сессия Outlook из Проект1 (VbaProject.OTM) панель, чтобы открыть режим, а затем скопируйте и вставьте следующий код в пустой модуль.

Код 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 для приложений окно, в выскакивающем Ссылки-Project1 диалоговое окно, отметьте Библиотека объектов Microsoft Word и Среда выполнения сценариев Microsoft варианты из Доступные ссылки список, см. снимок экрана:

4. Затем нажмите OK Теперь, чтобы закрыть диалоговое окно, вы должны создать задачу для запуска кода VBA. Пожалуйста, перейдите в Сложность задачи панели, нажмите Новая задача для создания задачи:

(1.) В Темаt, вы должны ввести тему как Отправить письмо с днем ​​рождения;

(2.) Затем щелкните Повторение под Сложность задачи вкладка;

(3.) В Повторение задачи диалоговое окно, выберите Daily и указать каждые 1 дн. из файла Шаблон повторения раздел;

5. Затем нажмите OK Чтобы закрыть диалоговое окно, вернитесь в окно задачи, установите напоминание для повторяющейся задачи, как показано на следующем снимке экрана:

6. С этого момента, когда напоминание предупреждает, макрос будет запускаться немедленно. Появится диалоговое окно, напоминающее вам о вставке поздравления с днем ​​рождения, как показано на следующем снимке экрана:

7. Затем нажмите OK Приветственное письмо будет отправлено контакту, у которого сегодня день рождения, автоматически.


Лучшие инструменты для офисной работы

Kutools for Outlook - Более 100 мощных функций для улучшения вашего Outlook

🤖 Почтовый помощник с искусственным интеллектом: Мгновенные профессиональные электронные письма с помощью магии искусственного интеллекта: гениальные ответы одним щелчком мыши, идеальный тон, многоязычное владение. Преобразуйте электронную почту без особых усилий! ...

???? Автоматизация электронной почты: Нет на месте (доступно для POP и IMAP)  /  Расписание отправки писем  /  Автоматическое копирование/скрытая копия по правилам при отправке электронной почты  /  Автопересылка (расширенные правила)   /  Автоматическое добавление приветствия   /  Автоматически разделять электронные письма от нескольких получателей на отдельные сообщения ...

📨 Управление электронной почтой: Легко вспоминать электронные письма  /  Блокировка мошеннических писем от субъектов и других лиц  /  Удалить повторяющиеся электронные письма  /  Поиск  /  Объединение папок ...

📁 Вложения ProПакетное сохранение  /  Пакетное отсоединение  /  Пакетное сжатие  /  Автосохранение   /  Авто отсоединение  /  Автоматическое сжатие ...

???? Магия интерфейса: 😊Больше красивых и крутых смайлов   /  Повысьте производительность Outlook с помощью представлений с вкладками  /  Свернуть Outlook вместо закрытия ...

???? Чудеса в один клик: Ответить всем с входящими вложениями  /   Антифишинговые письма  /  🕘Показать часовой пояс отправителя ...

👩🏼‍🤝‍👩🏻 Контакты и календарь: Пакетное добавление контактов из выбранных писем  /  Разделить группу контактов на отдельные группы  /  Удалить напоминания о днях рождения ...

Более Особенности 100 Ждем вашего исследования! Нажмите здесь, чтобы узнать больше.

 

 

Comments (5)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
Good morning,
I've set this up exactly as outlined, I have Kutools installed, however, there's no Macro popup when the reminder activates. What information can I provide you to help me solve this?
This comment was minimized by the moderator on the site
how he come to know who's birthday is today.you not mention, from where he pick detail of the employee.one more thing, i want to send birthday mail to all employee email id.
This comment was minimized by the moderator on the site
I am using this code with outlook 2016. Followed all the steps but kutool popup is not coming as mentioned in last step
This comment was minimized by the moderator on the site
hay alguna forma para mac?
This comment was minimized by the moderator on the site
Buen día, podría indicar cómo el código obtiene y valida la fecha de nacimiento??? . Otra consulta es si funciona para una lista de usuarios. Es decir que valide sus fechas de nacimiento y les envíe automáticamente saludos de cumpleaños. Muchas gracias
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations