[Okta Webinar] Learn how to a build a cloud-first strategyRegister Now

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

Outlook 2007 auto forward

Hello,  I'm pretty sure this can't be done with an Outlook rule but wondering if anyone knows of another way or utility that can do this.

A customer of mine wants to auto forward messages to eight different mailboxes (internal) from a shared mailbox.  He wants to cycle through this list of eight e-mail addresses.   For example, the first message comes to this shared mailbox, it is forwarded to the first e-mail address.  A second message comes into this mailbox, it is sent to the next e-mail address and so on. After reaching the last e-mail address, it starts at the top again.  The customer wants these requests that come into this shared mailbox to be distributed evenly among these eight individuals.

Outlook 2007
Exchange 2003

Thanks
0
ToddDOT
Asked:
ToddDOT
  • 4
  • 3
  • 2
  • +1
1 Solution
 
endital1097Commented:
this cannot be done as an outlook rule
outlook rules are processed against incoming messages and they cannot remember previous actions taken by the same rule

with exchange 2007 and 2010, someone might be able to create a web service that accomplishes this, but that is currently outside my scope
0
 
sunnyc7Commented:
This cannot be done using outlook /Exchange 2003 rules as endital said#

Let me ask you - the purpose of doing this:
a) Are you trying to allocate tickets from a shared mailbox to different users using outlook rules ?

If so - you cant use outlook/Exchange to create a ticketing system which auto assigns a case to next agent.
You will have to use some form of Ticketing/helpdesk system to do this.

0
 
ToddDOTAuthor Commented:
Thanks for your responses and confirming that it can't be done out of box with Outlook rules.

This isn't for allocating tickets, we do have a system in place for helpdesk tickets.  But maybe similar type software can be used for these individuals.  I didn't have any luck myself finding a Outlook utility\or add-in that would do this.

Currently, these users are all receiving these requests via a distribution list and the user that works in that region where this is, grabs it.  The problem is that this particular region get more of these requests than the others so they want to distribute the load.  They wanted to automate the process if possible.

So far, I'm leaning toward just having them all access this shared mailbox and grab the requests manually unless I come across any util\app.

thanks
0
What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

 
endital1097Commented:
i don't know of any utilities that could help, sorry
0
 
David LeeCommented:
Hi, ToddDOT.

I can do it with a rule and a script, but that would mean leaving a computer running with Outlook open and logged into the shared mailbox all the time.  If that's an option, then I can provide the script and instructions.
0
 
sunnyc7Commented:
<-- was hoping bluedevilfan sees this case :)
0
 
David LeeCommented:
Thanks, sunnyc7!
0
 
ToddDOTAuthor Commented:
Thanks BlueDevilFan.   I would prefer this to be a server side process versus a client side one since it would require leaving Outlook open.   I am interested in your script\rule though and trying it out.  I'm not sure we will be able to dedicate a machine for this but maybe I can have one of these users take this over.  I can set them up with a profile on their PC so they can lauch this mailbox daily to run this rule, maybe that would work for them.
0
 
David LeeCommented:
I understand.  I'm not aware of any way to do this at the server unless you want to write an event sink.  These are essentially macros that run at the server.  Because they run at the server a poorly written or buggy event sink can bring down the entire server.  They are best left to professional developers.  

Here's the code for doing this at the client.  Follow these instructions to use the code.  

1.  Start Outlook
2.  Click Tools > Macro > Visual Basic Editor
3.  If not already expanded, expand Microsoft Office Outlook Objects
4.  If not already expanded, expand Modules
5.  Select an existing module (e.g. Module1) by double-clicking on it or create a new module by right-clicking Modules and selecting Insert > Module.
6.  Copy the code from the Code Snippet box and paste it into the right-hand pane of Outlook's VB Editor window
7.  Edit the code as needed.  I included comments wherever something needs to or can change
8.  Click the diskette icon on the toolbar to save the changes
9.  Close the VB Editor
10. Create a new distribution list and name it Round Robin
11. Add the people who you want to forward to to the list
12. Enter the number 1 in the distribution list's notes
13. Create a rule that fires for these items
14. Set the rule's action to "run a script" and select this script as the one to run

Here's how this works.

1.  A message arrives and triggers the rule
2.  The rule runs the script and passes it the message that triggered the rule
3.  The script retrieves the Round Robin distribution list
4.  The script gets the next number from the list's notes field
5.  The script creates a forward and addresses it to the nth member of the list
6.  The script sends the forward
7.  The script increments the number by one and writes it back to the notes field of the list


Sub RoundRobinForward(Item As Outlook.MailItem)
    Dim olkDL As Outlook.DistListItem, olkMember As Outlook.Recipient, olkFW As Outlook.MailItem, intIndex As Integer
    Set olkDL = Session.GetDefaultFolder(olFolderContacts).Items.Find("[Subject] = 'Round Robin'")
    If TypeName(olkDL) = "Nothing" Then
        msgbox "The Round Robin distribution list does not exist.", vbCritical + vbOKOnly, "Round Robin Forward"
    Else
        intIndex = olkDL.Body
        Set olkMember = olkDL.GetMember(intIndex)
        Set olkFW = Item.Forward
        olkFW.To = olkMember.Name
        olkFW.Recipients.ResolveAll
        olkFW.Send
        intIndex = intIndex + 1
        If intIndex > olkDL.MemberCount Then
            intIndex = 1
        End If
        olkDL.Body = intIndex
        olkDL.Save
    End If
    Set olkDL = Nothing
    Set olkMember = Nothing
    Set olkFW = Nothing
End Sub

Open in new window

0
 
ToddDOTAuthor Commented:
Thanks.
0
 
David LeeCommented:
You're welcome.
0

Featured Post

Windows Server 2016: All you need to know

Learn about Hyper-V features that increase functionality and usability of Microsoft Windows Server 2016. Also, throughout this eBook, you’ll find some basic PowerShell examples that will help you leverage the scripts in your environments!

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