Go Premium for a chance to win a PS4. Enter to Win

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

Outlook 2003 rules not running automatically

Hello,
  Hopefully someone can help me make sense of this.

I am using Outlook 2003, connecting to our Exchange Server.
To help cut down on my mailbox size, I created a rule to check when mail is sent to move sent items to a local .PST folder.  However, this rule does not run automatically after I send an email but works when I clicked to run rules now.
Would anyone know why this is so?

Thanks
0
genius2x
Asked:
genius2x
  • 4
  • 4
1 Solution
 
David LeeCommented:
Hi, genius2x.

Rules only run when items are sent or received.  They cannot be made to run when an item is moved.  
0
 
genius2xAuthor Commented:
Hi BlueDevilFan, Thanks for the quick response.
 Can you suggest a way for Sent Items to be moved automatically to a local folder (.pst folder) without having to resort to using Sent Items Organizer?
http://www.sperrysoftware.com/Outlook/Sent-Items-Organizer.asp
0
 
David LeeCommented:
Do the sent items need to go to a single folder or multiple folders?  If multiple folders, how many and how would a solution determine which folder to move an item to?
0
Configuration Guide and Best Practices

Read the guide to learn how to orchestrate Data ONTAP, create application-consistent backups and enable fast recovery from NetApp storage snapshots. Version 9.5 also contains performance and scalability enhancements to meet the needs of the largest enterprise environments.

 
genius2xAuthor Commented:
Just one folder.
0
 
David LeeCommented:
No need to purchase an add-in.  We can do this with a fairly simple bit of scripting, like the code below.  Follow these instructions to set up and use the code.

  1. Start Outlook
  2. Click Tools->Macro->Visual Basic Editor
  3. If not already expanded, expand Microsoft Office Outlook Objects and click on ThisOutlookSession
  4. Copy the code from the Code Snippet box and paste it into the right-hand pane of Outlook's VB Editor window
  5. Edit the code as needed.  I included comment lines wherever something needs to or can change
  6. Click the diskette icon on the toolbar to save the changes
  7. Close the VB Editor
  8. Click Tools->Macro->Security
  9. Set the Security Level to Medium
  10. Close Outlook
  11. Start Outlook
  12. Outlook will display a dialog-box warning that ThisOutlookSession contains macros and asking if you want to allow them to run.  Say yes.
That's it.  When you send an item the sent items copy will be moved to the designated folder.  Keep in mind that this will move every sent item to this folder.

Private WithEvents olkSentItems As Outlook.Items
Private olkFolder As Outlook.MAPIFolder
 
Private Sub Application_MAPILogonComplete()
    Set olkSentItems = Session.GetDefaultFolder(olFolderSentMail).Items
    'Edit the folder path on the following line.  A folder path in Outlook is just like a folder path in the file system, only without the drive letter.'
    Set olkFolder = OpenOutlookFolder("Personal Folders\My Folder\My Sub-folder")
End Sub
 
Private Sub Application_Quit()
    Set olkSentItems = Nothing
    Set olkFolder = Nothing
End Sub
 
Private Sub olkSentItems_ItemAdd(ByVal Item As Object)
    Item.Move olkFolder
End Sub
 
Function IsNothing(obj)
  If TypeName(obj) = "Nothing" Then
    IsNothing = True
  Else
    IsNothing = False
  End If
End Function
 
Function OpenOutlookFolder(strFolderPath As String) As Outlook.MAPIFolder
    Dim arrFolders As Variant, _
        varFolder As Variant, _
        olkFolder As Outlook.MAPIFolder
    On Error GoTo ehOpenOutlookFolder
    If strFolderPath = "" Then
        Set OpenOutlookFolder = Nothing
    Else
        If Left(strFolderPath, 1) = "\" Then
            strFolderPath = Right(strFolderPath, Len(strFolderPath) - 1)
        End If
        arrFolders = Split(strFolderPath, "\")
        For Each varFolder In arrFolders
            If IsNothing(olkFolder) Then
                Set olkFolder = Session.Folders(varFolder)
            Else
                Set olkFolder = olkFolder.Folders(varFolder)
            End If
        Next
        Set OpenOutlookFolder = olkFolder
    End If
    On Error GoTo 0
    Exit Function
ehOpenOutlookFolder:
    Set OpenOutlookFolder = Nothing
    On Error GoTo 0
End Function

Open in new window

0
 
genius2xAuthor Commented:
Hi BlueDevilFan,
  Thank you for the code.  Sorry for being a Macros idiot, but looks like i'm doing something wrong with code.

Debugger shows that there is an error on the following line:
                                     Item.Move olkFolder
Private WithEvents olkSentItems As Outlook.Items
Private olkFolder As Outlook.MAPIFolder
 
Private Sub Application_MAPILogonComplete()
    Set olkSentItems = Session.GetDefaultFolder(olFolderSentMail).Items
    'Edit the folder path on the following line.  A folder path in Outlook is just like a folder path in the file system, only without the drive letter.'
    Set olkFolder = OpenOutlookFolder("outlooksentpst\PersonalSentFolder.pst")
End Sub
 
Private Sub Application_Quit()
    Set olkSentItems = Nothing
    Set olkFolder = Nothing
End Sub
 
Private Sub olkSentItems_ItemAdd(ByVal Item As Object)
    Item.Move olkFolder
End Sub
 
Function IsNothing(obj)
  If TypeName(obj) = "Nothing" Then
    IsNothing = True
  Else
    IsNothing = False
  End If
End Function
 
Function OpenOutlookFolder(strFolderPath As String) As Outlook.MAPIFolder
    Dim arrFolders As Variant, _
        varFolder As Variant, _
        olkFolder As Outlook.MAPIFolder
    On Error GoTo ehOpenOutlookFolder
    If strFolderPath = "" Then
        Set OpenOutlookFolder = Nothing
    Else
        If Left(strFolderPath, 1) = "\" Then
            strFolderPath = Right(strFolderPath, Len(strFolderPath) - 1)
        End If
        arrFolders = Split(strFolderPath, "\")
        For Each varFolder In arrFolders
            If IsNothing(olkFolder) Then
                Set olkFolder = Session.Folders(varFolder)
            Else
                Set olkFolder = olkFolder.Folders(varFolder)
            End If
        Next
        Set OpenOutlookFolder = olkFolder
    End If
    On Error GoTo 0
    Exit Function
ehOpenOutlookFolder:
    Set OpenOutlookFolder = Nothing
    On Error GoTo 0
End Function

Open in new window

sentfolder.JPG
0
 
David LeeCommented:
No problem. The folder path is invalid.  The path is the path to the folder inside Outlook, not to the .pst file in the file system. Outlook folder paths are just like file system folder paths in that they are built by joining the names of all the folders between the root and destination folders separated by a \ character. Consider a folder structure that looks like this in Outlook

Personal Folders
  + Folder 1
       + Sub-folder A
       + Sub-folder B
  + Folder 2
       + Sub-folder C

The path to "Folder 1" is "Personal Folders\Folder 1"
The path to "Sub-folder C" is "Personal Folders\Folder 2\Sub-folder C"

You need to use path in Outlook to the folder you want the items to go into.
0
 
genius2xAuthor Commented:
Excellent!!
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
  • 4
Tackle projects and never again get stuck behind a technical roadblock.
Join Now