Save and rename outlook email attachments to include domain name & date received

Status
Not open for further replies.

weslake77

New Member
Outlook version
Outlook 2016 64 bit
Email Account
Outlook.com (as MS Exchange)
Hi all,
I'm not a developer and quite the beginner. I work for my family on a farm and we have a heap of invoices coming in each month via email and I'd love to be able to create a macro that allows all attachments that are invoices or statements to be saved to a file on my computer.
I have a macro that is currently functioning well that pulls all attachments that include the words Ïnvoice or Statement into a folder on my computer.
This is it below:

Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "C:\Users\Sarah\OneDrive\Accounts & Invoices\2018\Email Invoice Attachments\"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub

But now I have a huge file filled with a bunch of files (invoices and statements) that are badly named and I don't know what they are unless I open them up.
So, I'd love to be able to rename the attachment to include the email domain & the date received.
For example - I get an invoice from a company called Queensland Bearings - their email address is "admin@queenslandbearings.com.au" and the email was received on the 1st April 2018. I would like the attachment to be saved as "QueenslandBearings-20180401"
Can someone please help me with the code for this?
Greatly appreciated
Sarah.
 

weslake77

New Member
Outlook version
Outlook 2016 64 bit
Email Account
Outlook.com (as MS Exchange)
Hi all, pretty desperate for a reply. Your help would be greatly appreciated
 

niton

Member
Outlook version
Outlook 2010 32 bit
Email Account
Exchange Server 2010
You can extract somewhat useful information out of SenderEmailAddress.

Code:
Public Sub SaveAttachmentsToDisk(MItem As mailItem)

    Dim oAttachment As attachment
    Dim sSaveFolder As String
 
    Dim sndrEmailAdd As String
    Dim sndrEmailRight As String
    Dim sndrEmailPreDot As String
    
    Dim saveName As String
 
    ' Try on a test folder not your current folder
    sSaveFolder = "C:\Users\Sarah\OneDrive\Accounts & Invoices\2018\Email Invoice Attachments\"
        
    '  Extract text, after @ and before dot, from the email address.
    sndrEmailAdd = MItem.SenderEmailAddress
        
    'Debug.Print sndrEmailAdd
    'Debug.Print " position of @ sign: " & InStr(sndrEmailAdd, "@")
    'Debug.Print " number of characters right of @ sign: " & Len(sndrEmailAdd) - InStr(sndrEmailAdd, "@")
    
    sndrEmailRight = Right(sndrEmailAdd, Len(sndrEmailAdd) - InStr(sndrEmailAdd, "@"))
    'Debug.Print " text after @ sign: " & sndrEmailRight
    
    'Debug.Print " position of the (first) . period in the remaining text: " & InStr(sndrEmailRight, ".")
    sndrEmailPreDot = Left(sndrEmailRight, InStr(sndrEmailRight, ".") - 1)
    
    'Debug.Print " text before . period: " & sndrEmailPreDot
    
    For Each oAttachment In MItem.Attachments
            
        ' Without versioning code,
        '  if more than one attachment with same name they will overwrite.
        ' Would have been doing so previously,
        '  now less likely with the added prefix.
                
        saveName = sSaveFolder & sndrEmailPreDot & "-" & Format(MItem.ReceivedTime, "yyyymmdd") & "-" & oAttachment.DisplayName
        
        oAttachment.SaveAsFile saveName
        
    Next
 
End Sub

Sub saveDocumentsFromPreviouslyReceivedMailWithNewName()
    ' Open one old mail first
    SaveAttachmentsToDisk ActiveInspector.currentItem
End Sub
 

weslake77

New Member
Outlook version
Outlook 2016 64 bit
Email Account
Outlook.com (as MS Exchange)
Thank you so very much for taking the time to reply and send all of that code!
I'll give that go and let you know :)
Thanks
Sarah
 

weslake77

New Member
Outlook version
Outlook 2016 64 bit
Email Account
Outlook.com (as MS Exchange)
It worked beautifully!!! Thank you so much and also thank you for explaining the steps!! It's greatly appreciated!!
If you have any suggestions as to what websites or course that I should look into to learn VBA that would be great. If not, thanks again for all of your assistance :)
 
Status
Not open for further replies.
Thread starter Similar threads Forum Replies Date
W Save Outlook attachment in network folder and rename to current date and time Outlook VBA and Custom Forms 18
C Save outlook attachments and rename/append files with identifier from subject line Outlook VBA and Custom Forms 3
A Edit attachment Save and Reply Outlook VBA and Custom Forms 0
S Outlook (2016 32bit; Gmail IMAP) - Save sent message to Outllook Folder Outlook VBA and Custom Forms 0
P Outlook pst file is too huge with POP3. How to save more space? Using Outlook 4
D Prevent popup of "Do you want to save changes?" when closing after opening an appointment to view Outlook VBA and Custom Forms 2
A Unable to save recurring Meeting to Documents folder due to error Using Outlook 2
M Outlook 2013 Script Assistance - Save Opened Link with Subject Added Outlook VBA and Custom Forms 1
R Use an ItemAdd to Save Attachments on Arrival Outlook VBA and Custom Forms 0
W Outlook Calendar does not save view any longer! Using Outlook 3
S automate save the .xlxs file to share Network Using Outlook 1
S save email from excel Outlook VBA and Custom Forms 1
Y Open and Save Hyperlink Files in multiple emails Outlook VBA and Custom Forms 9
9 Outlook 2016 How to save an Outlook attachment to a specific folder then delete the email it came from? Using Outlook 1
O Save attachments using hotkey without changing attributes Outlook VBA and Custom Forms 1
geofferyh Cannot get Macro to SAVE more than one message attachment??? Outlook VBA and Custom Forms 5
N Open & Save VBAProject.Otm using VBA Code Outlook VBA and Custom Forms 1
R VBA | Chosing path to save file Outlook VBA and Custom Forms 1
V Change default default save location to Quick Access Using Outlook 1
C Change default "Save Sent Item To" folder Outlook VBA and Custom Forms 9
C Outlook - cannot save subject line changes Using Outlook 2
J Save E-mail attachments in a specific folder Outlook VBA and Custom Forms 0
I Outlook 2016 64bit - on receipt convert emails into PDF and save Outlook VBA and Custom Forms 2
V VB script code to save a specific email attachment from a given email Outlook VBA and Custom Forms 14
C Auto save outlook attachments when email is received Outlook VBA and Custom Forms 1
N editing drafts - won't let me save Using Outlook 12
nathandavies Email Details to Excel & Save as .MSG on one macro - combination of 2 macros Outlook VBA and Custom Forms 3
C Need VBA code to automatically save message outside outlook and add date Outlook VBA and Custom Forms 1
D Save Sent Item to Using Outlook 0
Diane Poremsky Save Selected Email Message as .msg File New Slipstick.com Articles 11
Diane Poremsky Export (Save) Outlook Contact photos New Slipstick.com Articles 0
Diane Poremsky Save Messages and Attachments to a New Folder New Slipstick.com Articles 0
B Delete/replace old files and save new attachments Using Outlook 1
E Outlook 2016 and Numerous Prompts to Save Emails Using Outlook 3
Diane Poremsky Save Outlook Email as a PDF New Slipstick.com Articles 0
Diane Poremsky Edit and Save Outlook's Read-Only Attachments New Slipstick.com Articles 0
Diane Poremsky Save Attachments to the Hard Drive New Slipstick.com Articles 2
B VBA Help Email that will save as draft and send as attachment Outlook VBA and Custom Forms 3
C Save Subject of Received Email as a String Outlook VBA and Custom Forms 1
C Rule To Save attachments on receipt of email Outlook VBA and Custom Forms 2
O Cannot open or save calendar items Using Outlook 0
Diane Poremsky Choosing the Folder to Save a Sent Message In New Slipstick.com Articles 0
Frédéric Save E mail using different path. Outlook VBA and Custom Forms 24
M Question: Is there a rule that will save email in Windows Explorer Outlook VBA and Custom Forms 3
B Auto Save of Attachments from Multiple Emails and forward attachments to user group Outlook VBA and Custom Forms 1
S using script rule to save attachments on arrival Outlook 2010 Outlook VBA and Custom Forms 9
S Save in folder other than Sent when replying with Quick Steps Using Outlook 5
L Save message from outlook to desktop in 2013 outlook Outlook VBA and Custom Forms 1
Mark Foley Where are Outlook categories save for IMAP? Using Outlook 12
Diane Poremsky Save Sent Items in Shared Mailbox using an Exchange Server Cmdlet New Slipstick.com Articles 0
Similar threads


















































Top