Custom Outlook Report Email Button

    Microsoft has given us the ability to report messages as Junk or Phishing to help improve their accuracy.  I would love to customize what they've given us to send messages elsewhere but Microsoft didn't provide us with that option.  

    The problem is that not all messages are black & white obvious and users might not be able to determine the legitimacy of a message.  I would love a single click button that would forward suspicious email to our team where we can give it a hard look.  Now thinking about that scenario for a second -- if a user forwards spam, it could get flagged on our end as spam.  

    Spoiler alert:  We're going to create such a button.  In the design, we're going to forward the message to a specific address that we can whitelist to prevent the forwarded message from getting trapped on our end.  In addition, we're going to change the subject to one that allows for easy identification.  

    First, let's take a look at what Microsoft is offering us, if enabled:

    Because we are unable to modify their buttons, I'm headed down this path:

    First things first -- we need to enable the Developer option on the ribbon. 

    Choosing File:

    We select Options:

    We select Customize Ribbon:

    Note on the right hand column, Developer is unchecked, we check that option:

    Now back on the main screen of Outlook we see the Developer tab:

    When we select the Developer tab, we can then choose Macros and the Macros sub item:

    Here we are able to create a Macro.  Before we can create a Macro, we need to give it a name:

    Your Macro name must NOT include spaces:

    Once we choose a name and select Create:

    We are presented with a blank slate -- we are going to enter the following:

    Sub ReportEmail()
    Dim objMail As Outlook.MailItem
    Set objItem = GetCurrentItem()
    Set objMail = objItem.Forward
    objMail.To = "[EMAIL ADDRESS]"
    objMail.Subject = "*** User Reported Email *** "
    Set objItem = Nothing
    Set objMail = Nothing
    End Sub

    Function GetCurrentItem() As Object
    Dim objApp As Outlook.Application
    Set objApp = Application
    On Error Resume Next
    Select Case TypeName(objApp.ActiveWindow)
    Case "Explorer"
    Set GetCurrentItem = _
    Case "Inspector"
    Set GetCurrentItem = _
    Case Else
    End Select
    End Function

    We want to change the email address and you can also change the Subject to whatever you like.

    When we save and close, we now want to add our button to the Ribbon. 

    Right clicking in the area I've highlighted below....

    ... will bring up this menu.  We are going to choose the Customize Ribbon option:

    Using the drop down menu on the left side, we are going to choose from Macros.  On the right side, we are going to create a New Group:

    The group will be titled New Group.  If we highlight it, we can rename it:


    We can move this item to wherever we like on the ribbon.  I'm moving it next to the Delete button:

    Now that we have our location picked, we are going to highlight our group on the right side, our Macro on the left side, and we're going to add our Macro to the group:

    Now we are going to rename our Macro:

    We are going to call it Report Email and we're going to give it a big, bold, icon:

    Once we have it renamed and our icon selected, we see our finished product:

    Selecting OK and heading back to the main screen of Outlook, we see our newly created button:

    When we highlight a suspicious email and hit our Report Email button, we see that it's forwarding to our chosen address and it's also changed the subject:

    On the other end, we have our whitelist in place and the message arrives successfully in our team mailbox for inspection.  

    © 2020