Skip to main content

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

Author: Xiaoyang Last Modified: 2025-08-06

أحيانًا، قد ترغب في إرسال رسالة تهنئة تلقائيًا إلى جهة الاتصال عندما يكون اليوم هو عيد ميلادها في 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. بعد ذلك، انقر فوق زر موافق، وسيتم إرسال بريد تهنئة تلقائيًا إلى جهة الاتصال التي يصادف عيد ميلادها اليوم.


أفضل أدوات إنتاجية أوفيس

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

اختبر أدوات Kutools لـ Outlook الجديدة كليًا مع أكثر من100 ميزة مذهلة! انقر لتحميلها الآن!

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

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

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

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

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

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

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

استخدم أدوات Kutools بلغتك المفضلة – يدعم الإنجليزية، الإسبانية، الألمانية، الفرنسية، الصينية، وأكثر من40 لغة أخرى!

افتح أدوات Kutools لـ Outlook فوراً بنقرة واحدة. لا تنتظر، حمِّله الآن وحقق كفاءة أعلى!

kutools for outlook features1 kutools for outlook features2