Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 304
  • Last Modified:

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.
0
Takamine334
Asked:
Takamine334
  • 4
  • 3
1 Solution
 
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
Concerto Cloud for Software Providers & ISVs

Can Concerto Cloud Services help you focus on evolving your application offerings, while delivering the best cloud experience to your customers? From DevOps to revenue models and customer support, the answer is yes!

Learn how Concerto can help you.

 
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

Featured Post

What does it mean to be "Always On"?

Is your cloud always on? With an Always On cloud you won't have to worry about downtime for maintenance or software application code updates, ensuring that your bottom line isn't affected.

  • 4
  • 3
Tackle projects and never again get stuck behind a technical roadblock.
Join Now