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

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

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

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

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

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

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

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

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

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

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

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