?
Solved

Outlook: VBA code automatically forward Unread email to another mailbox

Posted on 2012-03-15
6
Medium Priority
?
1,828 Views
Last Modified: 2012-03-20
Hi experts,

We have Outlook 2007 and Exchange 2007 in our org, there is a request to be able to forward all Unread emails from a mailbox to a different mailbox after 1 day or so, and it'll run automatically or scheduled task.

I've searched around but haven't seen a way to do this with Transport rules or Outlook rules.

I think it probably can be done by writing some VBA codes in Outlook to accomplish. If so, could anyone help or guide me how to do that? I know little to nothing about VBA

Is this possible?
0
Comment
Question by:tnguyenWIRB
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
6 Comments
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 37729662
Whilst it is possible using vba this would require the outlook client to be active ... Assuming so then we should be able to work something.

Chris
0
 
LVL 1

Author Comment

by:tnguyenWIRB
ID: 37729877
Hi Chris,

I guess so, if there's no other way such as Open Outlook, run the script, send unread message, close Outlook.
0
 
LVL 59

Expert Comment

by:Chris Bottomley
ID: 37730718
We could do it as a scheduled task for example hourly to run a script that does the business?
0
Office 365 Training for Admins - 7 Day Trial

Learn how to provision tenants, synchronize on-premise Active Directory, implement Single Sign-On, customize Office deployment, and protect your organization with eDiscovery and DLP policies.  Only from Platform Scholar.

 
LVL 1

Author Comment

by:tnguyenWIRB
ID: 37730749
Yes, I was thinking about that too.

I forgot to say, I'd like to forward only the external emails and unread, not internal ones.

Thanks,
0
 
LVL 59

Accepted Solution

by:
Chris Bottomley earned 2000 total points
ID: 37732787
A bit of code to actually call a macro is as follows:

Dim objOL
Dim ctl
Dim cbr
Const msoControlButton = 1
Dim shell
   
    Set shell = CreateObject("wscript.shell")
    shell.Run "outlook.exe"
   
    Set objOL = CreateObject("Outlook.Application")
    Set cbr = objOL.ActiveExplorer.CommandBars("Standard")
    Set ctl = cbr.Controls.Add(msoControlButton)
    ctl.OnAction = "checkold"
'    ctl.Parameter = "fred"
    ctl.Execute
    ctl.Delete

Open in new window


check old needs to be a button in outlook that runs some code to do what you want.  A  piece of code to pick up any emails in the inbox that are unread and older than 1 day would be:

Sub send24()
Dim strFilter As String
Dim inboxItems As Items
Dim unreadItems As Items
    
    strFilter = "[received] <= '" & Format(DateAdd("h", -24, Now()), "ddddd h:nn AMPM") & "'"
    Set inboxItems = Application.Session.GetDefaultFolder(olFolderInbox).Items.Restrict(strFilter)
    strFilter = "[Unread] = True"
    Set unreadItems = inboxItems.Restrict(strFilter)
        For Each itm In unreadItems
            With itm.Forward
                .To = "fred@fred.com"
                .Subject = "Delayed response ... please process"
                .Display
            End With
        Next
    
End Sub

Open in new window


send24 is the code that in this case is executed by the button check old as called  by the script

Chris
0
 
LVL 1

Author Comment

by:tnguyenWIRB
ID: 37743202
Sorry for the late response Chris, it was a long weekend for me :)

We had to modify the script a bit for our needs but it worked,

Thank you for your help,
0

Featured Post

Does Powershell have you tied up in knots?

Managing Active Directory does not always have to be complicated.  If you are spending more time trying instead of doing, then it's time to look at something else. For nearly 20 years, AD admins around the world have used one tool for day-to-day AD management: Hyena. Discover why

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

In-place Upgrading Dirsync to Azure AD Connect
Check out this step-by-step guide for using the newly updated Experts Exchange mobile app—released on May 30.
In this video we show how to create an email address policy in Exchange 2013. We show this process by using the Exchange Admin Center. Log into Exchange Admin Center.:  First we need to log into the Exchange Admin Center. Navigate to the Mail Flow…
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…
Suggested Courses
Course of the Month13 days, 6 hours left to enroll

800 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question