Skip to main content

كيف يمكنك إرسال رسالة تهنئة تلقائيًا إلى جهة اتصال إذا كان اليوم هو عيد ميلادها في Outlook؟

Author: Xiaoyang Last Modified: 2025-05-30

أحيانًا، قد ترغب في إرسال رسالة تهنئة تلقائيًا إلى جهة الاتصال عندما يكون اليوم هو عيد ميلادها في Outlook. سيكون هذا العمل شاقًا إذا كنت تتحقق من أعياد الميلاد يدويًا واحدة تلو الأخرى وتقوم بإرسال رسائل التهنئة يدويًا. في هذه المقالة، سأقدم لك كود VBA لحل هذه المشكلة بسرعة وسهولة.

إرسال رسالة تهنئة تلقائيًا إلى جهة اتصال بناءً على عيد ميلادها باستخدام كود VBA في Outlook


إرسال رسالة تهنئة تلقائيًا إلى جهة اتصال بناءً على عيد ميلادها باستخدام كود VBA في Outlook

لإرسال رسالة تهنئة تلقائيًا إلى جهة اتصال إذا كان اليوم هو عيد ميلادها، قم أولاً بإدراج كود VBA، ثم تحتاج إلى إنشاء مهمة متكررة لتفعيل الكود.

قد تساعدك الخطوات التالية:

1. قم بتشغيل Outlook، ثم اضغط مع الاستمرار على مفتاحي ALT + F11 لفتح نافذة Microsoft Visual Basic for Applications.

2. في نافذة Microsoft Visual Basic for Applications، انقر نقرًا مزدوجًا على ThisOutlookSession من لوحة Project1(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 
the screenshot of step about using vba to send a greeting message to a contact automatically if his birthday is today in Outlook 1

3. بعد ذلك، انقر فوق أدوات > مراجع في نافذة Microsoft Visual Basic for Applications، في مربع الحوار المنبثق References-Project1، حدد خياري Microsoft Word Object Library و Microsoft Scripting Runtime من قائمة المراجع المتاحة، كما هو موضح في الصورة التالية:

4. بعد ذلك، انقر فوق موافق لإغلاق مربع الحوار، الآن يجب أن تقوم بإنشاء مهمة لتفعيل كود VBA. يرجى الانتقال إلى لوحة المهام، وانقر فوق مهمة جديدة لإنشاء مهمة:

(1.) في سطر الموضوع، يجب عليك إدخال الموضوع كـ إرسال بريد تهنئة بعيد الميلاد؛

(2.) ثم انقر فوق تكرار أسفل علامة التبويب المهمة؛

(3.) في مربع حوار نمط التكرار للمهمة، حدد يوميًا وحدد الخيار كل 1 أيام من قسم نمط التكرار؛

5. بعد ذلك، انقر فوق موافق لإغلاق مربع الحوار، والعودة إلى نافذة المهمة، يرجى تعيين تذكير للمهمة المتكررة كما هو موضح في الصورة التالية:

6. من الآن فصاعدًا، عند ظهور التذكير، سيتم تشغيل الماكرو فورًا. سيظهر مربع حوار ينبهك لإدراج التهاني بعيد الميلاد كما هو موضح في الصورة التالية:

7. بعد ذلك، انقر فوق زر موافق، وسيتم إرسال بريد تهنئة تلقائيًا إلى جهة الاتصال التي يصادف عيد ميلادها اليوم.


أفضل أدوات الإنتاجية لمجموعة Office

خبر عاجل: أدوات Kutools لـ Outlook تطلق إصدارًا مجانيًا!

جرّب الآن الإصدار المجاني الجديد كليًا من أدوات Kutools لـ Outlook مع أكثر من70 ميزة مذهلة، متاحة لك مدى الحياة! انقر للتحميل الآن!

🤖 Kutools AI : يستخدم تقنية الذكاء الاصطناعي المتقدمة لإدارة البريد الإلكتروني بسهولة، بما في ذلك الرد، والتلخيص، والتحسين، والتوسيع، والترجمة، وكتابة الرسائل.

📧 أتمتة البريد الإلكتروني: الرد التلقائي (متوفر لـ POP وIMAP) / جدولة إرسال البريد / نسخة تلقائية/مخفية حسب القواعد عند الإرسال / التحويل التلقائي (قاعدة متقدمة) / إضافة التحية تلقائيًا / تقسيم رسائل البريد الإلكتروني متعددة المستلمين تلقائيًا إلى رسائل فردية ...

📨 إدارة البريد الإلكتروني: استدعاء البريد الإلكتروني / حظر رسائل الاحتيال حسب الموضوعات وغيرها / حذف الرسائل المكررة / البحث المتقدم / تنظيم المجلدات ...

📁 المرفقات الاحترافية: حفظ دفعي / فصل دفعي / ضغط دفعي / حفظ تلقائي / تفصيل تلقائي / ضغط تلقائي ...

🌟 سحر الواجهة: 😊 المزيد من الرموز التعبيرية الجميلة والرائعة / تنبيهك عند وصول رسائل هامة / تصغير Outlook بدلاً من الإغلاق ...

👍 ميزات بنقرة واحدة: الرد على الجميع مع المرفقات / رسائل البريد الإلكتروني المضادة للتصيد / 🕘 عرض المنطقة الزمنية للمرسل ...

👩🏼‍🤝‍👩🏻 جهات الاتصال والتقويم: إضافة جهات اتصال دفعة واحدة من الرسائل المحددة / تقسيم مجموعة جهات الاتصال إلى مجموعات فردية / إزالة تذكير عيد الميلاد ...

افتح أدوات Kutools لـ Outlook فورًا بنقرة واحدة. لا تنتظر، قم بالتحميل الآن وزد من إنتاجيتك!

kutools for outlook features1 kutools for outlook features2