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?
 
David LeeCommented:
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
Ultimate Tool Kit for Technology Solution Provider

Broken down into practical pointers and step-by-step instructions, the IT Service Excellence Tool Kit delivers expert advice for technology solution providers. Get your free copy now.

 
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.