Salt la conținutul principal

Cum se imprimă toate atașamentele într-un / mai multe e-mailuri în Outlook?

Autor: Kelly Ultima modificare: 2022-08-05

După cum știți, va imprima conținutul e-mailului, cum ar fi antetul, corpul, doar când faceți clic pe Fișier > în Microsoft Outlook, dar nu tipăriți atașamentele. Aici vă vom arăta cum să imprimați ușor toate atașamentele dintr-un e-mail selectat în Microsoft Outlook.


Imprimați toate atașamentele într-un singur mesaj de e-mail unul câte unul

Microsoft Outlook ne oferă Imprimare rapidă caracteristică, care vă poate ajuta să imprimați atașamente într-un mesaj de e-mail unul câte unul.

1. Selectați mesajul de e-mail ale cărui atașamente le veți imprima ulterior.

2. Faceți clic pe un atașament din acest e-mail.

3. clic pe Imprimare rapidă buton în Acţiuni grup pe Atașamente tab.

Notă: Instrumente de atașare nu va fi activat până nu faceți clic pe atașamente în e-mailuri.

4. Apare un dialog Deschidere atașament la e-mail și faceți clic pe Operatii Deschise butonul.

Vă rugăm să rețineți că acest pas va deschide atașamentul selectat și va imprima acest atașament selectat în același timp.

Pentru a imprima alte atașamente în acest e-mail, repetați pasul 2 până la pasul 4.

Salvați / exportați rapid toate atașamentele din mai multe e-mailuri în Outlook

În mod normal, putem salva atașamente dintr-un singur e-mail prin activarea fișierului Instrumente de atașare și aplicarea Salvați toate atașamentele caracteristică în Outlook. Dar, dacă salvăm atașamente din mai multe e-mailuri sau din întregul folder de poștă electronică din Outlook? Încercați Kutools pentru Outlook Salvează tot (Atașamente) caracteristică.


salvați atașamente în mai multe e-mailuri kto9

Tipăriți în lot toate atașamentele într-un singur mesaj de e-mail

Dacă există multe atașamente într-un singur mesaj de e-mail, imprimarea lor pe rând va dura mult. Și următoarea metodă vă va ghida prin imprimarea în lot a tuturor atașamentelor dintr-un mesaj de e-mail selectat.

1. Selectați mesajul de e-mail ale cărui atașamente le veți imprima ulterior.

2. În Outlook 2010 sau versiunile ulterioare, faceți clic pe Fișier > > Opțiuni de imprimare. Vedeți următoarea captură de ecran:

3. În caseta de dialog Print, vă rugăm să verificați Imprimați fișierele atașate. Atașamentele se vor tipări numai pe imprimanta implicită opțiune în Opțiuni de imprimare secţiune.

4. clic pe butonul.

5. În fereastra de dialog Deschidere atașament poștal, faceți clic pe Operatii Deschise pentru a merge mai departe. (notițe: Această casetă de dialog va apărea separat pentru fiecare atașament separat.)

Acum toate atașamentele din acest mesaj de e-mail selectat vor fi imprimate simultan.


Imprimați în serie toate atașamentele și imaginile în mai multe e-mailuri selectate

Pentru a imprima toate atașamentele din mai multe e-mailuri, precum și toate imaginile din corpul mesajului în Outlook, urmați pașii de mai jos pentru a aplica un cod VBA.

1. În lista de corespondență, țineți apăsat Ctrl or Schimba taste pentru a selecta mai multe e-mailuri ale căror atașamente le veți imprima.

2. presa Alt + F11 tastele împreună pentru a deschide fereastra Microsoft Visual Basic pentru aplicații.

3. În fereastra Microsoft Visual Basic pentru aplicații, faceți clic pe Instrumente > Referinte. Și apoi verificați Runtime Microsoft Scripting opțiunea așa cum se arată mai jos. După ce ați terminat, faceți clic OK.

4. Clic Insera > Module, și apoi lipiți mai jos codul VBA în fereastra noului modul.

VBA: tipăriți toate atașamentele în mai multe e-mailuri Outlook

Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/03
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        xFilePath = xTempFldPath & "\" & xAttachment.FileName
        xAttachment.SaveAsFile (xFilePath)
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
End Sub

5. presa F5 tasta sau faceți clic pe Alerga butonul pentru a rula acest cod VBA. Acum veți vedea că toate atașamentele din e-mailurile selectate și imaginile din corpul mesajului sunt tipărite.

Notă:

  • Fiecare imagine va afișa o casetă de dialog pop-up pentru a vă cere confirmarea tipăririi. În timp ce alte tipuri de fișiere vor fi tipărite direct.
  • Dacă există imagini într-o semnătură de e-mail, acestea vor apărea și casete de dialog pop-up.
  • Daca primesti Macrocomenzile din acest proiect sunt dezactivate eroare, vă rugăm să verificați acest tutorial: Cum să activați și să dezactivați macrocomenzi în Outlook?

Imprimați în lot toate atașamentele din mai multe e-mailuri selectate, cu excepția imaginilor din corp

Pentru a imprima doar atașamente în mai multe e-mailuri, dar imaginile din corpul mesajului în Outlook, urmați pașii de mai jos pentru a aplica un cod VBA.

1. În lista de corespondență, țineți apăsat Ctrl or Schimba taste pentru a selecta mai multe e-mailuri ale căror atașamente le veți imprima.

2. presa Alt + F11 tastele împreună pentru a deschide fereastra Microsoft Visual Basic pentru aplicații.

3. În fereastra Microsoft Visual Basic pentru aplicații, faceți clic pe Instrumente > Referinte. Și apoi verificați Runtime Microsoft Scripting opțiunea așa cum se arată mai jos. După ce ați terminat, faceți clic OK.

4. Clic Insera > Module, și apoi lipiți mai jos codul VBA în fereastra noului modul.

VBA: tipăriți toate atașamentele în mai multe e-mailuri Outlook

Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/05
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        If IsEmbeddedAttachment(xAttachment) = False Then
          xFilePath = xTempFldPath & "\" & xAttachment.FileName
          xAttachment.SaveAsFile (xFilePath)
          Debug.Print xFilePath
        End If
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
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

5. presa F5 tasta sau faceți clic pe Alerga butonul pentru a rula acest cod VBA. Acum veți vedea că toate atașamentele din e-mailurile selectate sunt tipărite.

Notă:

  • Fiecare imagine atașată va afișa o casetă de dialog pop-up pentru a vă cere confirmarea tipăririi. În timp ce alte tipuri de fișiere vor fi tipărite direct.
  • Imaginile din corpul mesajului nu vor fi tipărite.
  • Daca primesti Macrocomenzile din acest proiect sunt dezactivate eroare, vă rugăm să verificați acest tutorial: Cum să activați și să dezactivați macrocomenzi în Outlook?

 


Demo: tipăriți unul sau toate atașamentele într-un e-mail Outlook


varful: În acest videoclip, Kutools fila este adăugată de Kutools pentru Outlook. Dacă aveți nevoie, faceți clic pe aici pentru a avea o perioadă de încercare gratuită de 60 de zile fără limitare!


Cele mai bune instrumente de productivitate de birou

Kutools pentru Outlook - Peste 100 de funcții puternice pentru a vă supraalimenta Outlook

🤖 AI Mail Assistant: E-mailuri profesionale instantanee cu magie AI--un singur clic pentru răspunsuri geniale, ton perfect, stăpânire în mai multe limbi. Transformați e-mailurile fără efort! ...

📧 Automatizare e-mail: În afara biroului (disponibil pentru POP și IMAP)  /  Programați trimiterea de e-mailuri  /  CC/BCC automat după reguli la trimiterea e-mailului  /  Redirecționare automată (Reguli avansate)   /  Adăugare automată felicitare   /  Împărțiți automat e-mailurile cu mai mulți destinatari în mesaje individuale ...

📨 Managementul e-mail: Amintește-ți cu ușurință e-mailurile  /  Blocați e-mailurile înșelătorii de către subiecți și alții  /  Ștergeți e-mailurile duplicate  /  Cautare Avansata  /  Consolidați foldere ...

📁 Atașamente ProSalvați în serie  /  Detașare lot  /  Compresă în loturi  /  Salvare automata   /  Detașare automată  /  Comprimare automată ...

🌟 Magia interfeței: 😊Mai multe emoji drăguțe și cool   /  Îmbunătățiți-vă productivitatea Outlook cu vizualizările cu file  /  Minimizați Outlook în loc să închideți ...

???? Minuni cu un singur clic: Răspundeți tuturor cu atașamentele primite  /   E-mailuri anti-phishing  /  🕘Afișați fusul orar al expeditorului ...

👩🏼‍🤝‍👩🏻 Contacte și calendar: Adăugați în lot contacte din e-mailurile selectate  /  Împărțiți un grup de contact în grupuri individuale  /  Eliminați mementouri de ziua de naștere ...

Peste 100 Caracteristici Așteaptă explorarea ta! Click aici pentru a descoperi mai multe.

 

 

Comments (24)
Rated 5 out of 5 · 1 ratings
This comment was minimized by the moderator on the site
Is it possible to specify a network printer instead of always printing with the standard printer?
This comment was minimized by the moderator on the site
Dear all,

I had tried the VBA and the code runs but many popups are opening on screen to print images from the mail signature (apparently this is considered an attachment). Anyone knows how to solve it?

S.
This comment was minimized by the moderator on the site
If you don't want to print pictures in the body of a message, please use the code below:
Sub PrintAllAttachmentsInMultipleMails()
  'Update by ExtendOffice 2022/08/05
  Dim xShellApp As Object
  Dim xFSO As Scripting.FileSystemObject
  Dim xItem As Object
  Dim xTempFldPath, xFilePath As String
  Dim xSelItems As Outlook.Selection
  Dim xMailItem As Outlook.MailItem
  Dim xAttachments As Outlook.Attachments
  Dim xAttachment As Outlook.Attachment
  Dim xFile As File
  On Error Resume Next
  Set xFSO = New Scripting.FileSystemObject
  xTempFldPath = xFSO.GetSpecialFolder(2).Path & "\Attachments " & Format(Now, "yyyymmddhhmmss") 'xFSO.GetSpecialFolder(2) For saving temporary files
  If xFSO.FolderExists(xTemfldpath) = False Then 'create temporary folder
    xFSO.CreateFolder (xTempFldPath)
  End If
  Set xSelItems = Outlook.ActiveExplorer.Selection
  Set xShellApp = CreateObject("Shell.Application")
  For Each xItem In xSelItems
    If xItem.Class = OlObjectClass.olMail Then
      Set xMailItem = xItem
      Set xAttachments = xMailItem.Attachments
      For Each xAttachment In xAttachments
        If IsEmbeddedAttachment(xAttachment) = False Then
          xFilePath = xTempFldPath & "\" & xAttachment.FileName
          xAttachment.SaveAsFile (xFilePath)
          Debug.Print xFilePath
        End If
      Next
    End If
  Next
  For Each xFile In xFSO.GetFolder(xTempFldPath).Files
    VBA.DoEvents
    Call xShellApp.ShellExecute(xFile.Path, "", "", "print", 0)
  Next
  Set xSelItems = Nothing
  Set xShellApp = Nothing
  Set xFSO = Nothing
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
This comment was minimized by the moderator on the site
Dear Amanda,

Thank you for the code. It worked!

S.
This comment was minimized by the moderator on the site
Hi there,

Sorry that printing images will bring up popups. You will have to confirm each to download all the images. If you don't need to print images, please click Cancel.

Amanda
This comment was minimized by the moderator on the site
I am using Microsoft 365 and this worked after deleting line 9. Thanks! This has saved a bit of time for me.
Rated 5 out of 5
This comment was minimized by the moderator on the site
hallo, ich möchte nur den Anhang der Mails von der angegebenen Adresse senden, wie kann ich das machen, danke
This comment was minimized by the moderator on the site
Vielen, vielen Dank dafür! Hat uns enorm viel Arbeit erspart.Auch ich musste - wie bereits in den Kommentaren geschrieben - die neunte Zeile "Dim xAttachment As Outlook.Attachment On Error Resume Next" entfernen, dann lief der Code einfandfrei durch.
This comment was minimized by the moderator on the site
Hi, this worked fine for me yesterday but now it is saying 'the macros in this project are disabled' Any advice how to enable them? 
This comment was minimized by the moderator on the site
This comment was minimized by the moderator on the site
on line 9 , removing "On Error Resume Next" worked for me.
This comment was minimized by the moderator on the site
Hi everyone, we updated the VBA code in the tutorial on 2022/08/03. If you still need to print all attachments, please check the new code. 😊
This comment was minimized by the moderator on the site
Hi, I have been using this shortcut for a few weeks now, printing all attachments from multiple emails at once, and I have recently been having to remove line 9 as Nilanka said, which has been working, but this no longer works. Im getting the warning box saying the macros in this project are disabled.....and so on... if someone has a solution to make this work as it has been prior to now, please lmk, as i am selecting about 60 emails all containing attachments to print. Thanks
This comment was minimized by the moderator on the site
This comment was minimized by the moderator on the site
Thank you 
This comment was minimized by the moderator on the site
yes this just worked for me as well. Thank you!
This comment was minimized by the moderator on the site
the VBA code gives syntax is error
This comment was minimized by the moderator on the site
if a pdf has the same name the macro prints just one pdf, how can i change the code in order to modify the pdf name?
This comment was minimized by the moderator on the site
if you want to print all attachments together in 1 email here's what you do. first make a folder on your desktop....I named mine "print". go to the email with the attachments....highlight all of the attachments, right click, save all attachments to the print folder. Open the print folder.....highlight all of them.....right click.....print.



now if only I could figure out how to print all the attachments in 200 emails without opening each one and printing it.
This comment was minimized by the moderator on the site
Kutools for Outlook's Detach All (Attachments) feature can help you download all attachments from multiple emails with several clicks! https://www.extendoffice.com/product/kutools-for-outlook/outlook-detach-attachments.html
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations