How do I set sent emails to specific folders?

I know outlook has the ability to put sent emails in folders that you are replying from. What is a macro that will save ANY message (new messages, etc) in the CURRENTLY SELECTED folder?

I need the ability to save a sent message in the folder that is currently selected, no matter what or who I send it to.
Takamine334Asked:
Who is Participating?

Improve company productivity with a Business Account.Sign Up

x
 
David LeeConnect With a Mentor Commented:
Hi, Jason.

Outlook has a setting that does this for replies, but only replies.  Doing it for all items will require a bit of code like that below.  There are limitations to this though.  Every folder has a property called DefaultItemType that restricts the kind of items that can go in it.  A calendar folder can only contain appointments, a contacts folder only contacts, etc.  A calendar cannot contain a sent mail item and it's possible to send a message while viewing a calendar.  So, to avoid any errors, the code checks the current folder to see if it can hole a mail item.  If it can, then it saves the sent item there.  If not, then the sent item will go to Sent Items.  

This code must go in the ThisOutlookSession module.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim olkFolder As Outlook.MAPIFolder
    If Item.Class = olMail Then
        Set olkFolder = Application.ActiveExplorer.CurrentFolder
        Select Case olkFolder.DefaultItemType
            Case olMailItem, olPostItem
                Set Item.SaveSentMessageFolder = olkFolder
                Item.Save
        End Select
    End If
    Set olkFolder = Nothing
End Sub

Open in new window

0
 
Takamine334Author Commented:
Thank you! You saved me SOOOO much hassle! I work with one other client and this will make our job a lot easier. Thank you!!
0
 
David LeeCommented:
No problem.  Always glad to help out.
0
Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

 
Takamine334Author Commented:
I'm sorry to further complicate things. Is there a way to only run this code if the folder selected is in the BOOKING PST?
0
 
David LeeCommented:
No problem.  Try this.  Notice the comments in the code.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim olkFolder As Outlook.MAPIFolder
    If Item.Class = olMail Then
        Set olkFolder = Application.ActiveExplorer.CurrentFolder
        'Replace Booking with the name of the folder as it appears in Outlook folder view
        If RootFolder(olkFolder) = "Booking" Then
            Select Case olkFolder.DefaultItemType
                Case olMailItem, olPostItem
                    Set Item.SaveSentMessageFolder = olkFolder
                    Item.Save
            End Select
        End If
    End If
    Set olkFolder = Nothing
End Sub
 
Function RootFolder(olkFolder As Outlook.Folder) As String
    Dim olkStore As Outlook.Store
    Set olkStore = Session.GetStoreFromID(olkFolder.StoreID)
    RootFolder = olkStore.DisplayName
    Set olkStore = Nothing
End Function

Open in new window

0
 
Takamine334Author Commented:
Thank you so much!
0
 
David LeeCommented:
No problem.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.