Community Pick: Many members of our community have endorsed this article.
Editor's Choice: This article has been selected by our editors as an exceptional contribution.

Resending Messages in Microsoft Outlook

David Lee
CERTIFIED EXPERT
Published:
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
12,930 Views
David Lee
CERTIFIED EXPERT

Comments (9)

how do you make this work for 2010?
CERTIFIED EXPERT
Top Expert 2010

Author

Commented:
The code should work in 2010 without any problem.  Or are you talking about adding a toolbar button to run the code from?
TemodyPickalbatros, IT Manager

Commented:
awesome Article i just test it in outlook 2013 just work fine and add it as a new button
resend with one click
Thanks
CERTIFIED EXPERT
Top Expert 2010

Author

Commented:
Thanks, Temody.  I'm glad you like it.
Is there any way of editing the email before resending it? Similar to the Resend this Message option when you have an email open.

View More

Have a question about something in this article? You can receive help directly from the article author. Sign up for a free trial to get started.