Skip to main content

Kutools for Office — مجموعة واحدة. خمسة أدوات. أنجز المزيد.

كيفية طباعة المرفقات تلقائيًا عند وصول البريد الإلكتروني في Outlook؟

Author Siluvia Last modified

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


طباعة المرفقات تلقائيًا عند وصول رسائل بريد إلكتروني معينة

لنفترض أنك تريد طباعة مرفقات رسائل البريد الإلكتروني الواردة من مرسل معين تلقائيًا. يمكنك القيام بما يلي لتحقيق ذلك.

الخطوة 1: إنشاء نص برمجي في Outlook

أولاً، تحتاج إلى إنشاء نص VBA في Outlook.

1. افتح Outlook الخاص بك واضغط على مفتاح Alt + F11 في نفس الوقت لفتح نافذة Microsoft Visual Basic for Applications.

2. في نافذة Microsoft Visual Basic for Applications، انقر نقرًا مزدوجًا على Project1 > Microsoft Outlook Objects > ThisOutlookSession لفتح نافذة ThisOutlookSession (Code)، ثم انسخ الكود التالي إلى هذه النافذة البرمجية.

steps of auto printing attachments when emails arrive in Outlook

VBA code 1: طباعة المرفقات تلقائيًا (جميع أنواع المرفقات) عند وصول رسائل البريد الإلكتروني

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xTempFolder & "\" & xAtt.FileName
      xAtt.SaveAsFile (xFileName)
      Set xFolderItem = xFolder.ParseName(xFileName)
      xFolderItem.InvokeVerbEx ("print")
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
Exit Sub
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

ملاحظة: يدعم هذا الكود طباعة جميع أنواع المرفقات المستلمة في رسائل البريد الإلكتروني. إذا كنت ترغب في طباعة نوع محدد من المرفقات فقط، مثل ملفات pdf، يرجى تطبيق الكود VBA التالي.

VBA code 2: طباعة نوع محدد من المرفقات تلقائيًا عند وصول رسائل البريد الإلكتروني

Sub AttachementAutoPrint(Item As Outlook.MailItem)
'Updated by Extendoffice 20230223
  Dim xFS As FileSystemObject
  Dim xTempFolder As String
  Dim xAtt As Attachment
  Dim xShell As Object
  Dim xFolder As Object, xFolderItem As Object
  Dim xFileType As String, xFileName As String
  On Error GoTo xError
  If Item.Attachments.Count = 0 Then Exit Sub
  Set xFS = New FileSystemObject
  xTempFolder = xFS.GetSpecialFolder(TemporaryFolder)
  xTempFolder = xTempFolder & "\ATMP" & Format(Item.ReceivedTime, "yyyymmddhhmmss")
  If Not xFS.FolderExists(xTempFolder) Then
    MkDir (xTempFolder)
  End If
  Set xShell = CreateObject("Shell.Application")
  Set xFolder = xShell.NameSpace(0)
  For Each xAtt In Item.Attachments
    If IsEmbeddedAttachment(xAtt) = False Then
      xFileName = xAtt.FileName
      xFileType = LCase$(Right$(xFileName, VBA.Len(xFileName) - VBA.InStrRev(xFileName, ".")))
      xFileName = xTempFolder & "\" & xFileName
      Select Case xFileType
        Case "pdf"   'change "pdf" to the file extension you want to print
          xAtt.SaveAsFile (xFileName)
          Set xFolderItem = xFolder.ParseName(xFileName)
          xFolderItem.InvokeVerbEx ("print")
      End Select
    End If
  Next xAtt
  Set xFS = Nothing
  Set xFolder = Nothing
  Set xFolderItem = Nothing
  Set xShell = Nothing
xError:
  If Err <> 0 Then
    MsgBox Err.Number & " - " & Err.Description, , "Kutools for Outlook"
    Err.Clear
  End If
  Exit Sub
End Sub

Function IsEmbeddedAttachment(Attach As Attachment)
Dim xItem As MailItem
Dim xCid As String
Dim xID As String
Dim xHtml As String
On Error Resume Next
IsEmbeddedAttachment = False
Set xItem = Attach.Parent
If xItem.BodyFormat <> olFormatHTML Then Exit Function
xCid = ""
xCid = Attach.PropertyAccessor.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001F")
If xCid <> "" Then
    xHtml = xItem.HTMLBody
    xID = "cid:" & xCid
    If InStr(xHtml, xID) > 0 Then
        IsEmbeddedAttachment = True
    End If
End If
End Function

ملاحظات:

1. قبل تطبيق هذا الكود VBA لطباعة ملفات pdf فقط في رسائل البريد الإلكتروني الواردة، أولاً تحتاج إلى تنزيل وتثبيت Adobe Acrobat Reader وتعيينه كقارئ pdf الافتراضي على جهاز الكمبيوتر الخاص بك.
2. في السطر Case "pdf"، يرجى تغيير "pdf" إلى امتداد الملف الذي تريد طباعته.

3. انتقل إلى أدوات > مراجع. في مربع الحوار References – Project1 المنبثق، حدد خانة Microsoft Scripting Runtime، ثم انقر فوق زر موافق.

steps of auto printing attachments when emails arrive in Outlook

4. احفظ الكود واضغط على مفتاح Alt + Q لإغلاق نافذة Microsoft Visual Basic for Applications.

ملاحظة: يرجى التأكد من تمكين خيار Enable all macros في Outlook الخاص بك. يمكنك التحقق من هذا الخيار باتباع الخطوات الموضحة أدناه.

steps of auto printing attachments when emails arrive in Outlook
الخطوة 2: بناء قاعدة لاستخدام النص البرمجي

بعد إضافة النص البرمجي VBA في Outlook، تحتاج إلى إنشاء قاعدة لاستخدام النص البرمجي بناءً على شروط معينة.

1. انتقل إلى علامة التبويب الرئيسية، انقر على القواعد > إدارة القواعد والتنبيهات.

steps of auto printing attachments when emails arrive in Outlook

2. في مربع الحوار القواعد والتنبيهات، انقر على زر القاعدة الجديدة لإنشاء قاعدة.

نصائح: إذا قمت بإضافة عدة حسابات بريد إلكتروني إلى Outlook الخاص بك، يرجى تحديد حساب في قائمة تطبيق التغييرات على هذا المجلد حيث تريد تطبيق القاعدة. وإلا سيتم تطبيقها على صندوق الوارد للحساب الحالي.

steps of auto printing attachments when emails arrive in Outlook

3. في أول مربع حوار معالج القواعد، حدد تطبيق القاعدة على الرسائل التي أستقبلها في مربع الخطوة 1، ثم انقر على التالي.

steps of auto printing attachments when emails arrive in Outlook

4. في ثاني مربع حوار معالج القواعد، تحتاج إلى:

4.1) تحديد شرط أو أكثر في مربع الخطوة 1 وفقًا لاحتياجاتك؛
في هذه الحالة، أريد طباعة المرفقات فقط في رسائل البريد الإلكتروني الواردة من مرسل محدد. هنا، أقوم بتحديد خانة الأفراد أو المجموعة العامة.
4.2) انقر على القيمة المسطر عليها في مربع الخطوة 2 لتحرير الشرط؛
4.3) انقر على التالي. انظر إلى لقطة الشاشة:
steps of auto printing attachments when emails arrive in Outlook

5. في ثالث مربع حوار معالج القواعد، تحتاج إلى تكوين ما يلي.

5.1) في قسم الخطوة 1: حدد الإجراء/الإجراءات، حدد خانة تشغيل النص البرمجي؛
5.2) في قسم الخطوة 2، انقر على النص المسطر “نص برمجي”؛
5.3) في مربع الحوار اختيار النص البرمجي المنبثق، انقر على اسم الكود VBA الذي أضفته أعلاه، ثم انقر على موافق؛
5.4) انقر على زر التالي. انظر إلى لقطة الشاشة:
steps of auto printing attachments when emails arrive in Outlook

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

6. بعد ذلك، سيظهر معالج القواعد آخر يسأل عن الاستثناءات. يمكنك تحديد الاستثناءات إذا لزم الأمر، وإلا فانقر على زر التالي دون أي اختيارات.

steps of auto printing attachments when emails arrive in Outlook

7. في آخر معالج القواعد، تحتاج إلى تحديد اسم للقاعدة، ثم انقر على زر إنهاء.

steps of auto printing attachments when emails arrive in Outlook

8. بعد ذلك، سيعود إلى مربع الحوار القواعد والتنبيهات، ويمكنك رؤية القاعدة التي أنشأتها مدرجة بالداخل، انقر على زر موافق لإنهاء كل الإعدادات.

steps of auto printing attachments when emails arrive in Outlook

من الآن فصاعدًا، عندما يتم استقبال بريد إلكتروني من الشخص المحدد، سيتم طباعة الملفات المرفقة تلقائيًا.


مقالات ذات صلة

طباعة المرفقات فقط من رسالة بريد إلكتروني واحدة أو رسائل مختارة في Outlook
في Outlook، يمكنك طباعة رسائل البريد الإلكتروني، ولكن هل قمت بطباعة المرفقات فقط من رسالة بريد إلكتروني واحدة أو رسائل مختارة في Outlook؟ تقدم هذه المقالة بعض الحيل لحل هذه المهمة.

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

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

طباعة جهة اتصال مع الصورة في Outlook
عادةً، لن يتم طباعة صورة جهة الاتصال عند طباعة جهة الاتصال في Outlook. لكن في بعض الأحيان، قد يكون من الأكثر تأثيرًا طباعة جهة الاتصال مع صورتها. ستقدم هذه المقالة بعض الحلول البديلة لتحقيق ذلك.

طباعة جزء محدد من بريد إلكتروني في Outlook
إذا تلقيت رسالة بريد إلكتروني ووجدت أن هناك جزءًا معينًا من محتوى البريد يحتاج إلى الطباعة بدلاً من طباعة الرسالة بأكملها، ماذا ستفعل؟ في الواقع، يمكن لـ Outlook مساعدتك في تحقيق هذه العملية بمساعدة متصفحات الإنترنت، مثل Firefox وInternet Explorer. هنا سآخذ متصفحات الإنترنت كمثال. يرجى الاطلاع على الدروس التالية.

المزيد من المقالات حول "الطباعة في Outlook"...


أفضل أدوات تعزيز الإنتاجية في المكتب

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

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

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

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

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

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

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

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

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

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

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

kutools for outlook features1 kutools for outlook features2

🚀 تنزيل بنقرة واحدة — احصل على جميع إضافات Office

موصى به بقوة: Kutools لـ Office (خمسة في واحد)

بنقرة واحدة يمكنك تنزيل خمسة برامج تثبيت مرة واحدة — Kutools لـ Excel وOutlook وWord وPowerPoint وOffice Tab Pro. انقر لتنزيل الآن!

  • سهولة بنقرة واحدة: قم بتنزيل جميع حزم التثبيت الخمسة دفعة واحدة.
  • 🚀 جاهز لأي مهمة في Office: ثبّت الإضافات التي تحتاجها وقتما تشاء.
  • 🧰 يتضمن: Kutools لـ Excel / Kutools لـ Outlook / Kutools لـ Word / Office Tab Pro / Kutools لـ PowerPoint