Adding header text or a top-banner to all outgoing mail

Aside from having a default signature, when creating a new message or reply/forward, some people (usually in marketing) also prefer to have a banner or special header text at the top of the message.

While this seems like an easy request, implementing it in such a way that it is added automatically is actually quite challenging and has its limitations in Outlook usability.

This guide provides several approaches how to solve this issue with the available Outlook features but also includes a VBA macro solution to fully automate adding the banner to your outgoing emails in a non-intrusive way.


Available methods built into Outlook: Pros and Cons

Template - Quick Parts - Signatures - buttonAside from adding the picture manually each time, there are various built-in features in Outlook to (semi-)automate adding a banner at the top such as:

  • A default Signature (and then write your message between the top-banner and actual signature part)
  • A message Template or Stationery
  • Quick Parts
  • Macro Code

Signature
When implementing it as a signature, you’ll run into 2 issues:

  • When using the TAB keyboard button to move from the message header subject to the message body, the cursor is places in front of the banner rather than below it.
  • Text within a signature area is excluded from Spelling Check and AutoCorrect and will be lost when you switch signatures.

Template or Stationery
When implementing it as a Template or Stationery, it will not work on replies and forwards, only new emails. And then you also still have the issue with the cursor positioning just as when having it defined as a Signature.

Quick Parts
Using a Quick Part is actually a quite workable solution. Especially when you call the Quick Part something like “<banner>” and then use AutoComplete (F3) to insert it. Of course, this method isn’t fully automated and can still be cumbersome when you have to do it for most, if not all, of your messages.

Send with Banner macro

To fully automate adding a top-banner to your outgoing emails, without any of the aforementioned downsides, you can use the “Send with Banner” macro from this guide.

Upon sending, this macro will add the required HTML for your top-banner to your message. This top-banner can be just an image but also some additional text which you want to add to the top of your outgoing message.

In the code example below, you can set the web location (URL) of the image that you wish to add and its size. You can also specify the URL for where the recipient should be taken when he/she clicks on the image (hyperlink).

In addition, you can set the macro to prompt your for each outgoing HTML message whether or not you would like to send the message with the banner at the top. The default is to prompt you but you can fully automate it by setting PromptSend to False. In that case, the banner will be added to all outgoing HTML messages.

Send with Banner macro - Do you want to include your banner to this message?
You can add your banner to all outgoing mail or just the ones you choose.

Quick Install

Use the following instructions to configure the macro in Outlook.

  1. Download this code-file (topbanner.zip) or copy the code below.
  2. Open the VBA Editor (keyboard shortcut ALT+F11)
  3. Extract the zip-file and import the AddBanner.bas file via File-> Import…
    If you copied the code, paste it into a new module.
  4. Modify the parameters for your banner between the BEGIN MODIFY and END MODIFY section of the code.
  5. Copy the code from the ThisOutlookSession.txt file or from the ThisOutlookSession section below and copy it to the ThisOutlookSession modules of Project1.
  6. Sign your code.

Aside from the AddBanner module, you must add 3 lines of code to ThisOutlookSession. (click on image to enlarge)
Aside from the AddBanner module, you must add 3 lines of code to ThisOutlookSession.
(click on image to enlarge)

Macro Code

The following code is contained in the zip-file referenced in the Quick Install. You can use the code below for review or manual installation.


Click in the area above and press CTR+A to select all. Press CTRL+C to copy the code.

Additionally, add the following code to the ThisOutlookSession module:

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Call SendWithBanner(Item)
End Sub