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

كود 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
ملاحظات:
3. في مربع الحوار الظاهرReferences – Project1، انقر علىTools > References، ثم حدد خانةMicrosoft Scripting Runtime، وانقر على زرOK.

4. احفظ الكود، ثم اضغط على مفاتيحAlt+Q لإغلاق نافذةMicrosoft Visual Basic for Applications.
ملاحظة:يُرجى التأكد من تفعيل خيارEnable all macros في Outlook الخاص بك. يمكنك التحقق من هذا الخيار باتباع الخطوات الموضحة أدناه.

الخطوة 2: إنشاء قاعدة لاستخدام النص البرمجي
بعد إضافة نص VBA في Outlook، عليك إنشاء قاعدة لتشغيل هذا النص البرمجي وفقًا لشروط معيّنة.
1. انتقل إلى تبويبHome، ثم انقر علىRules > Manage Rules & Alerts.

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

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

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

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

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

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

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

من الآن فصاعدًا، عند استلام رسالة بريد إلكتروني من الشخص المحدد، سيتم طباعة المرفقات تلقائيًا.
مقالات ذات صلة
طباعة المرفقات فقط من رسالة بريد إلكتروني واحدة أو من رسائل محددة في Outlook
في Outlook، يمكنك طباعة الرسائل الإلكترونية، ولكن هل سبق أن احتجتَ إلى طباعة المرفقات فقط من رسالة بريد إلكتروني واحدة أو من مجموعة رسائل محددة؟ يقدّم لك هذا المقال الحيل الذكية التي تساعدك على إنجاز هذه المهمة بسهولة!
طباعة رأس الرسالة فقط من رسالة بريد إلكتروني في Outlook
عند طباعة رسالة بريد إلكتروني في Outlook، يتم طباعة كلٍّ من رأس الرسالة وجسمها. لكن في بعض الحالات الخاصة، قد تحتاج فقط إلى طباعة رأس الرسالة الذي يحتوي على الموضوع والمرسِل والمستلمين وغير ذلك. ويقدّم لك هذا المقال حلين فعّالين لتحقيق ذلك.
طباعة تقويم لفترة معيّنة أو نطاق تاريخ مخصّص في Outlook
عادةً، عند طباعة التقويم في طريقة العرض الشهرية في Outlook، يتم اختيار الشهر الذي يحتوي على التاريخ المحدّد تلقائيًا. لكنك قد تحتاج أحيانًا إلى طباعة التقويم لفترة مخصّصة — مثل 3 أشهر أو نصف سنة أو غيرها. ويقدّم لك هذا المقال الحل الأمثل لتحقيق ذلك.
طباعة جهة اتصال مع صورتها في Outlook
عادةً لا تُطبع صورة جهة الاتصال عند طباعتها في Outlook، لكن أحيانًا يكون من الأفضل طباعتها مع صورتها لإبرازها. ويقدّم هذا المقال بعض الحلول البديلة لتحقيق ذلك.
طباعة جزء محدد من رسالة بريد إلكتروني في Outlook
إذا تلقيت رسالة بريد إلكتروني ووجدت أن هناك جزءًا معينًا من محتواها يحتاج إلى طباعته—بدلاً من طباعة الرسالة كاملة—فما العمل؟ في الواقع، يمكن لـ Outlook مساعدتك في تنفيذ هذه المهمة باستخدام متصفحات الإنترنت مثل Firefox وInternet Explorer. سأستخدم متصفحات الإنترنت كمثال. يُرجى الاطلاع على الدروس التالية.
أفضل أدوات إنتاجية Office
جرِّب Kutools لـ Outlook الجديد كليًّا مع 100+ ميزة رائعة!انقر للتنزيل الآن!
📧أتمتة البريد الإلكتروني: الرد التلقائي (متوفر لبروتوكولي POP وIMAP) / جدولة إرسال رسائل البريد الإلكتروني / نسخة تلقائية/مخفية وفق القواعد عند إرسال البريد الإلكتروني / التحويل التلقائي (قاعدة متقدمة) / إضافة التحيّة تلقائيًّا / تقسيم رسائل البريد الإلكتروني ذات المستلمين المتعددين تلقائيًّا إلى رسائل فردية...
📨إدارة البريد الإلكتروني: استدعاء البريد الإلكتروني / حظر رسائل الاحتيال حسب العناوين وغيرها / حذف الرسائل المكررة / البحث المتقدم / تنظيم المجلدات...
📁المرفقات الاحترافية: حفظ دفعة واحدة / فصل دفعة واحدة / ضغط دفعة واحدة / حفظ تلقائي / تفصيل تلقائي / ضغط تلقائي...
🌟سحر الواجهة: 😊إيموجيات أكثر جمالًا وروعة / إشعارك عند وصول رسائل بريد إلكتروني مهمة / تصغير Outlook بدلًا من إغلاقه...
👍عجائب النقرة الواحدة: الرد على الجميع مع المرفقات / الحماية من رسائل التصيد الاحتيالي / 🕘عرض منطقة الوقت الحالي للمرسل...
👩🏼🤝👩🏻جهات الاتصال والتقويم: إضافة جهات اتصال دفعةً واحدة من رسائل البريد الإلكتروني المحددة / تقسيم مجموعة جهات الاتصال إلى مجموعات فردية / إزالة تذكير عيد الميلاد...
استخدم Kutools باللغة التي تفضلها – يدعم الإنجليزية، الإسبانية، الألمانية، الفرنسية، الصينية، وأكثر من 40 لغة أخرى!
افتح Kutools لـ Outlook بنقرة واحدة فورًا! لا تنتظر، نزِّله الآن وحسِّن كفاءتك!


🚀 التنزيل بنقرة واحدة — احصل على جميع إضافات 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