<

Resending Messages in Microsoft Outlook

Published on
23,404 Points
12,204 Views
17 Endorsements
Last Modified:
Awarded
Community Pick
A few days ago I got a phone call from Lisa, one of my coworkers.  She was calling to ask about an email I was supposed to send her with some details about a project that our respective teams are working on.  Lisa said she hadn’t received it.  I quickly checked my Sent Items folder and found the message.  Sure enough, Lisa was one of the addressees.    At this point it’s immaterial why she didn’t get the message, I needed to send it to her again.  

Bill, a client, called me today.  He asked if I remembered an email I sent him a couple of months ago with some sales figures.  I told him I did.  Bill then asked if I could send it to him again.  He’d accidentally deleted the first message and needed another copy.  

Lisa and Bill are both fictitious characters I made up to illustrate a point: many of us have an occasional need to resend a message.  Outlook actually has a resend option, but getting to it takes a few steps.  

1.      Navigate to the Sent Items folder.
2.      Find the message you need to resend.
3.      Open the message.
4.      Outlook 2007: In the Actions group click Other Actions.
        Outlook 2003 and earlier: Click Actions on the menu.
5.      Click Resend This Message.
6.      The message will appear onscreen.
7.      Click the Send button.

Another approach is to forward the original message.  The steps for forwarding are

1.      Navigate to the Sent Items folder.
2.      Find the message you need to resend.
3.      Select the message.
4.      On the toolbar click the Forward button.
5.      Address the message.
6.      Click the Send button.

While forwarding saves one step it also means addressing the message and it means that the original message will come as a forwarded message instead of as an original message.  We can overcome the last issue by using the “Forward as Attachment” command.  There are other options available too, things like creating a new message and using copy and paste to copy the original message into the new message, or creating a new message and attaching the original.  No matter what approach you take resending is a multistep process.

Scripting to the rescue.  Resending a message via code is very simple.  Even with some error checking thrown in we can do it with less than 20 lines of code.  Add the code to Outlook and configure it to run from a toolbar button and we can resend a message with a single mouse click.  That’s a big time saver.  It may seem counterintuitive, but this approach to resending a message will probably save more time for those who don’t resend very often.  The less frequently I need to resend the more likely I am to fumble around trying to find the resend option on the menu.  Having a toolbar button makes the process easy.  I should point out that a scripted approach does not eliminate the requirement that you open the Sent Items folder and find the item you want to resend.  You still have to perform those steps.  From that point on the process is a lot simpler, especially if you need to resend several messages at the same time.  This solution allows you to select any number of messages and resend them all with a single click.

The Code.

Sub ResendMsgs()
    Dim olkMail As Outlook.MailItem
    Select Case TypeName(Application.ActiveWindow)
        Case "Explorer"
            For Each olkMail In Application.ActiveExplorer.Selection
                ResendMsg olkMail
            Next
        Case "Inspector"
            ResendMsg Application.ActiveInspector.CurrentItem
    End Select
    Set olkMail = Nothing
End Sub

Sub ResendMsg(olkMsg As Outlook.MailItem)
    Dim olkResend As Outlook.MailItem
    Set olkResend = olkMsg.Copy
    olkResend.Send
    Set olkResend = Nothing
End Sub

Open in new window



Instructions.

These instructions apply to all versions of Outlook from 2000 thorough 2007.  I have not tested the code with Outlook 2010 and Outlook 2010 does not support toolbars.

Adding the Code to Outlook.
1.      Open Outlook.
2.      Click ToolsMacroVisual Basic Editor
3.      If not already expanded, expand Microsoft Office Outlook Objects
4.      If you have a modules entry in the tree, expand it, otherwise click InsertModuleNew Module from the menu
5.      Select an existing module (e.g. Module1) by double-clicking on it or create a new module by right-clicking Modules and selecting InsertModule
6.      Copy the code and paste it into the right-hand pane of Outlook's VB Editor window
7.      Click the diskette icon on the toolbar to save the changes
8.      Close the VB Editor

Adding a Toolbar Button.
1.      Click ViewToolbarsCustomize
2.      Click the Toolbars tab
3.      Click New
4.      Name the toolbar
5.      Click the Commands tab
6.      Under Categories click Macros
7.      Under Commands click and hold on the macro, then drag it out and drop it on the new toolbar
8.      Dock the toolbar somewhere onscreen

Notes.

If you use this code with Outlook 2003 or earlier then Outlook will prompt you each time you resend a message.  The prompt is part of Outlook’s built in security designed to prevent malicious code from sending messages without your knowledge.  Although you cannot turn these prompts off, there are ways to work around them.

1.  Sign the code.  See this page for instructions on how to sign the code using a locally generated security certificate.
2.  Use ClickYes, a small utility that will click the Yes button for you.  It creates a security hole though, since a virus could start sending messages and ClickYes would click the Yes button for it too.  
3.  Use Outlook Redemption, a COM library that enables code to safely bypass Outlook security.
17
Author:David Lee
Ask questions about what you read
If you have a question about something within an article, you can receive help directly from the article author. Experts Exchange article authors are available to answer questions and further the discussion.
Get 7 days free