KutoolsforOffice — حل واحد، خمس أدوات قوية.تحقيق المزيد بجهد أقل.

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

المؤلفSiluviaتاريخ التعديل

يقدّم هذا الدليل طريقةً لدمج نص برمجي VBA مع قاعدة في 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)، ثم الصق الكود التالي في نافذة الكود هذه.

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

كود VBA 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 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، انقر علىTools > References، ثم حدد خانةMicrosoft Scripting Runtime، وانقر على زرOK.

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

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

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

خطوات الطباعة التلقائية للمرفقات عند وصول رسائل البريد الإلكتروني في Outlook
الخطوة 2: إنشاء قاعدة لاستخدام النص البرمجي

بعد إضافة نص VBA في Outlook، عليك إنشاء قاعدة لتشغيل هذا النص البرمجي وفقًا لشروط معيّنة.

1. انتقل إلى تبويبHome، ثم انقر علىRules > Manage Rules & Alerts.

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

2. في مربع حوارRules and Alerts، انقر على زرNew Rule لإنشاء قاعدة.

نصائح:إذا قمت بإضافة حسابات بريد إلكتروني متعددة إلى Outlook، يُرجى تحديد الحساب من القائمة المنسدلةApply changes to this folder الخاص بالمجلد الذي تريد تطبيق القاعدة عليه. وإلا، فسيتم تطبيق القاعدة تلقائيًا على صندوق الوارد الخاص بالحساب الحالي.

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

3. في مربع الحوار الأولمعالج القواعد، اخترApply rule on messages I receive في مربعStep 1، ثم انقر علىNext.

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

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

4.1) حدّد شرطًا واحدًا أو أكثر في مربعStep 1حسب حاجتك؛
في هذه الحالة، أريد طباعة المرفقات فقط من الرسائل الواردة من مرسل معيّن. هنا، حددت خانةfrom people or public group.
4.2) انقر على القيمة المسطّرة في مربعStep 2لتعديل الشرط؛
4.3) انقر علىNext.انظر لقطة الشاشة:
خطوات الطباعة التلقائية للمرفقات عند وصول رسائل البريد الإلكتروني في Outlook

5. في مربع الحوار الثالثمعالج القواعد، قم بالتهيئة كما يلي:

5.1) فيالخطوة 1: قسم تحديد الإجراء(الإجراءات)، حدد مربعتشغيل نص برمجي؛
5.2) فيالخطوة 2، انقر على النص المسطّر «نص برمجي»؛
5.3) في مربّع الحوارتحديد نص برمجيالذي يفتح، انقر على اسم كود VBA الذي أضفته أعلاه، ثم انقرموافق؛
5.4) انقر على زرالتالي. راجع لقطة الشاشة:
خطوات الطباعة التلقائية للمرفقات عند وصول رسائل البريد الإلكتروني في Outlook

نصائح:إذا لم يظهر خيار “Run a Script” فيمعالج القواعد، يمكنك إظهاره باتباع الطريقة الموضَّحة في هذا المقال: استعادة خيار Run A Script المفقود في قاعدة Outlook.

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

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

7. في المربع الأخيرمعالج القواعد، حدد اسمًا للقاعدة، ثم انقر على زرFinish.

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

8. بعد ذلك، ستعود إلى مربع حوارRules and Alerts، حيث ستجد القاعدة التي أنشأتها مدرجةً فيه. انقر على زرOK لإنهاء الإعدادات بالكامل.

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

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


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

طباعة المرفقات فقط من رسالة بريد إلكتروني واحدة أو من رسائل محددة في Outlook
في Outlook، يمكنك طباعة الرسائل الإلكترونية، ولكن هل سبق أن احتجتَ إلى طباعة المرفقات فقط من رسالة بريد إلكتروني واحدة أو من مجموعة رسائل محددة؟ يقدّم لك هذا المقال الحيل الذكية التي تساعدك على إنجاز هذه المهمة بسهولة!

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

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

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

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

مقالات أخرى حول «الطباعة في Outlook»...


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

جرِّب Kutools لـ Outlook الجديد كليًّا مع 100+ ميزة رائعة!انقر للتنزيل الآن!

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

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

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

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

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

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

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

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

افتح Kutools لـ Outlook بنقرة واحدة فورًا! لا تنتظر، نزِّله الآن وحسِّن كفاءتك!

kutools for outlook features1kutools for outlook features2

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

موصى به بشدة: Kutools for Office (5 في 1)

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

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