How to get list of attachments' information in selected mail in Outlook?
For the received emails which attached with attachments, sometimes you may need to know the detailed information of the attachments, such as the display name, file name and so on. Actually, VBA code can help you easily get the list of attachments’ information in current selected email in Outlook. Please browse the below tutorial for more details.
Get list of attachments’ information in selected mail in Outlook
1. Select the email with attachments which you want to get the information of them.
2. Press the Alt + F11 keys on the keyboard to open the Microsoft Visual Basic for Applications window.
3. Then double click the Project1 > Microsoft Outlook Object > ThisOutlookSession to open the Project1 – ThisOutlookSession window. See screenshot:
4. Then copy and paste the below VBA code into the Project1 – ThisOutlookSession window.
VBA code: get list of attachments’ information
Public Sub GetAttachmentList()
Dim selItem As Object
Dim aMail As MailItem
Dim aAttach As attachment
Dim Report As String
For Each selItem In Application.ActiveExplorer.Selection
If selItem.Class = olMail Then
Set aMail = selItem
For Each aAttach In aMail.Attachments
Report = Report & vbCrLf & "------------------------------------------------------------------------" & vbCrLf
Report = Report & GetAttachmentInfo(aAttach)
Call CreateReportEmail("Attachment Report", Report)
Public Function GetAttachmentInfo(attachment As attachment)
GetAttachmentInfo = ""
Report = Report & "Index: " & attachment.Index & vbCrLf
Report = Report & "Display Name: " & attachment.DisplayName & vbCrLf
Report = Report & "File Name: " & attachment.FileName & vbCrLf
Report = Report & "Block Level: " & attachment.BlockLevel & vbCrLf
Report = Report & "Path Name: " & attachment.PathName & vbCrLf
Report = Report & "Position: " & attachment.Position & vbCrLf
Report = Report & "Size: " & attachment.Size & vbCrLf
Report = Report & "Type: " & attachment.Type & vbCrLf
GetAttachmentInfo = Report
Sub CreateReportEmail(Title As String, Report As String)
Dim aMail As MailItem
Set aMail = Application.CreateItem(olMailItem)
aMail.Subject = Title
aMail.Body = Report
5. Press F5 key on the keyboard to run the VBA code.
6. Now a Macros dialog box pops up, please click the Run button.
7. After clicking the Run button in the Macros dialog box, a new message window will be created with all attachments information of selected email listed inside the email body. See screenshot:
Note: This VBA code can be applied to Outlook 2007, 2010 and 2013
Hi - I'm trying to figure out a way to set an automatic response which lists all the attachments they have sent. If this can include a file index for folders that would also be brilliant.
Basically - we receive emails with document submissions, I already have an automatic response set up to thank them for their submission but if this could now include "the documents you submitted are as below:... etc" that would help massively.
If somebody could help with this that would be brilliant! Thanks!