• Outlook User
  • New Outlook app
  • Outlook.com
  • Outlook Mac
  • Outlook & iCloud
  • Developer
  • Microsoft 365 Admin
    • Common Problems
    • Microsoft 365
    • Outlook BCM
    • Utilities & Addins

Run a script rule: Autoreply using a template

Slipstick Systems

› Developer › Run a script rule: Autoreply using a template

Last reviewed on August 24, 2020     103 Comments

A security update disabled the Run a script option in the rules wizard in Outlook 2010 and all newer Outlook versions. See Run-a-Script Rules Missing in Outlook for more information and the registry key to fix restore it.

This macro will reply to the person who sent the message. It includes the original message, any text entered by in the macro, plus the content of the template.

Because this is a run a script rule, all messages meeting the condition will be replied to, unlike the autoreply rule which is one message per Outlook session.

If you want to include the original subject, use (or add) item.subject to the .Subject field, otherwise, this should have most of the bases covered and point you in the right direction for things I didn't include. Remove the parts you don't need and you should be good to go....

Keep in mind that the original message is Item, from Item As Outlook.MailItem. oRespond is the message you are sending back. You need to use the Item fields if you want to include fields from the original message in the response.

Sub AutoReplywithTemplate(Item As Outlook.MailItem)
Dim oRespond As Outlook.MailItem

' Use this for a real reply
' Set oRespond = Item.Reply

' This sends a response back using a template
Set oRespond = Application.CreateItemFromTemplate("C:\path\to\template.oft")

With oRespond 
    .Recipients.Add Item.SenderEmailAddress
    .Subject = "Your Subject Goes Here"
    .HTMLBody = "Your reply text goes here." & vbCrLf & _
              "---- original body below ---" & vbCrLf & _ 
               Item.HTMLBody & vbCrLf & _ 
             "---- Template body below ---" & _ 
               vbCrLf & oRespond.HTMLBody

' includes the original message as an attachment
    .Attachments.Add Item

' use this for testing, change to .send once you have it working as desired
    .Display 
End With
Set oRespond = Nothing
End Sub

 

Autoreply to Reply To Address, Not Sender

If you use a web form that comes from a generic address with a Reply to address set, you can use a simple macro to Reply to the message. Unlike the autoreply rule which replies to the sender, this reply is the same as hitting the Reply button yourself.

Sub ReplytoReplyTo(Item As Outlook.MailItem)
Dim oRespond As Outlook.MailItem

Set oRespond = Item.Reply

' use for testing
 oRespond.Display
 ' oRespond.Send
 
 End Sub

 

Reply to a web form generated message

If you want to reply to a person who fills out a web form but the email that is generated is from a generic email address and their address is not in the Reply to field, you can use RegEx to get the address from the message body.

Sub SendNew(Item As Outlook.MailItem)
   Dim Reg1 As Object
    Dim M1 As Object
    Dim M As Object
    Dim strAddress As String

Set Reg1 = CreateObject("VBScript.RegExp")

    With Reg1
       .Pattern = "(([\w-\.]*\@[\w-\.]*)\s*)"
       .IgnoreCase = True
       .Global = False
    End With

If Reg1.Test(Item.Body) Then
     
        Set M1 = Reg1.Execute(Item.Body)
        For Each M In M1
           strAddress = M.SubMatches(1)
        Next
    End If

 Dim objMsg As MailItem
 Set objMsg = Application.CreateItemFromTemplate("C:\path\to\template.oft")

 objMsg.Recipients.Add strAddress

 ' Copy the original message subject
 objMsg.Subject = "Thanks: " & Item.Subject

' use for testing 
 objMsg.display 

 ' objMsg.Send

 End Sub

 

Reply with a template

When you want to reply with a template, you need to "pick up" information from the selected message. This macro works with an open or selected item and needs the GetCurrentItem function found here. If you will only ever use it with selected items (or open items) you can change the code to use current item or selection. More information is available at Outlook VBA: work with open item or selected item.

Sub ReplywithTemplate()
Dim Item As Outlook.MailItem
Dim oRespond As Outlook.MailItem


' need function fromhttp://slipstick.me/e8mio
Set Item = GetCurrentItem()

' This sends a response back using a template
Set oRespond = Application.CreateItemFromTemplate("C:\Test\template.oft")

With oRespond
    .Recipients.Add Item.SenderEmailAddress
    .subject = "Your Subject Goes Here"
    .HTMLBody = oRespond.HTMLBody & vbCrLf & _
              "---- original message below ---" & vbCrLf & _
               Item.HTMLBody & vbCrLf
               
' includes the original message as an attachment
    .Attachments.Add Item

' use this for testing, change to .send once you have it working as desired
    .Display
End With
Set oRespond = Nothing
End Sub

Testing a Run a Script macro

To test the macros without sending yourself messages, select a message and run this macro. Don't forget to change YourMacroName to the macro name first.

Sub RunScript()
Dim objApp As Outlook.Application
Dim objItem As Object ' MailItem
Set objApp = Application
Set objItem = objApp.ActiveExplorer.Selection.Item(1)

'macro name you want to run goes here
YourMacroName objItem

End Sub

More Information

More Run a Script Samples:

  • Autoaccept a Meeting Request using Rules
  • Automatically Add a Category to Accepted Meetings
  • Blocking Mail From New Top-Level Domains
  • Convert RTF Messages to Plain Text Format
  • Create a rule to delete mail after a number of days
  • Create a Task from an Email using a Rule
  • Create an Outlook Appointment from a Message
  • Create Appointment From Email Automatically
  • Delegates, Meeting Requests, and Rules
  • Delete attachments from messages
  • Forward meeting details to another address
  • How to Change the Font used for Outlook's RSS Feeds
  • How to Process Mail After Business Hours
  • Keep Canceled Meetings on Outlook's Calendar
  • Macro to Print Outlook email attachments as they arrive
  • Move messages CC'd to an address
  • Open All Hyperlinks in an Outlook Email Message
  • Outlook AutoReplies: One Script, Many Responses
  • Outlook's Rules and Alerts: Run a Script
  • Process messages received on a day of the week
  • Read Outlook Messages using Plain Text
  • Receive a Reminder When a Message Doesn't Arrive?
  • Run a script rule: Autoreply using a template
  • Run a script rule: Reply to a message
  • Run a Script Rule: Send a New Message when a Message Arrives
  • Run Rules Now using a Macro
  • Run-a-Script Rules Missing in Outlook
  • Save all incoming messages to the hard drive
  • Save and Rename Outlook Email Attachments
  • Save Attachments to the Hard Drive
  • Save Outlook Email as a PDF
  • Sort messages by Sender domain
  • Talking Reminders
  • To create a rule with wildcards
  • Use a Macro to Copy Data in an Email to Excel
  • Use a Rule to delete older messages as new ones arrive
  • Use a run a script rule to mark messages read
  • Use VBA to move messages with attachments
Run a script rule: Autoreply using a template was last modified: August 24th, 2020 by Diane Poremsky
Post Views: 29

Related Posts:

  • Run a Script: Send Autoreply with Date
  • A simple run a rule script marks Outlook messages read when the messag
    Use a run a script rule to mark messages read
  • Run a script rule: Reply to a message
  • Outlook AutoReplies: One Script, Many Responses

About Diane Poremsky

A Microsoft Outlook Most Valuable Professional (MVP) since 1999, Diane is the author of several books, including Outlook 2013 Absolute Beginners Book. She also created video training CDs and online training classes for Microsoft Outlook. You can find her helping people online in Outlook Forums as well as in the Microsoft Answers and TechNet forums.

Comments

  1. Dan schwartz says

    February 4, 2020 at 11:53 am

    fantastic solutions. All I need now is specifying the email account to auto respond to?

    Reply
    • Diane Poremsky says

      February 7, 2020 at 11:22 pm

      Do you mean the which of your accounts in Outlook or which sender? Either can be controlled by a conditions in a rule.

      Reply
  2. alex says

    October 31, 2019 at 6:00 am

    Hey. How to make an auto reply to an email in the message body.
    need to send to the mail where the field: EMAIL:

    From: no-reply@test.com
    Sent: Friday, September 13, 2009 12:11 PM
    To: HR
    Subject: summary job

    Name: Alex
    Телефон: 88002000600
    Email: global@mail.com "they are always different"

    Reply
  3. Sripathi says

    July 6, 2019 at 11:48 am

    Hi,
    Is it possible to do auto forward a mail when outlook is off (system is shutdown) based on some conditions? Not all the mails.
    Thanks

    Reply
    • Diane Poremsky says

      July 11, 2019 at 10:24 pm

      Only if you use an Exchange mailbox and can set up a server side rule to handle it.

      Reply
  4. Vishal says

    January 19, 2018 at 6:44 am

    Hi, I am trying to retrieve "date" from the Subject Line.
    For Ex : if the subject line reads like the one in below :

    PPT | Planned Maintenance Work | Check | 22:00 - 23:59 Jan 24, 2018 GMT+7 || Viao

    Firstly, want to retrieve the date from the subject line and then, I want to check if the date "Jan 24,2018" is less than 10 days from Today.
    If yes, I want to trigger a template autoreply. Is this a feasible task ?

    Looking out for the leads.

    Thanks !

    Reply
    • Diane Poremsky says

      January 19, 2018 at 11:23 am

      it is feasible. Will they all begin with ppt or be from the same sender - some way to filter them out from other messages?
      using the macro at https://www.slipstick.com/developer/code-samples/create-appointment-email-automatically/ as an example,
      If InStr(1, LCase(Item.Subject), "ppt") Then
      Dim apptArray() As String
      'split the subject
      apptArray() = Split(Item.Subject, "|")
      use the values:
      strDate = apptArray(4) ' it might be 3
      you'll need to convert it to a date and test it. I don't have the correct code to convert "22:00 - 23:59 Jan 24, 2018 GMT+7" to a date committed to memory (or published here) though. Even better is if the date and time have a separator, so they are split into separate fields.

      The other option is using regex instead of an array - it would look for the date format and extract it. That actually might be better, especially if the month is always 3 letters - but if you need to use values from the subject, the array grabs them for you. A macro example using regex is here: https://www.slipstick.com/developer/regex-parse-message-text/

      Reply
      • Vishal says

        January 22, 2018 at 2:21 am

        Diane, thanks for the kind reply.
        Yes, "ppt" is common in the subject line. However, the date "Jan 24,2018" will be appearing in the text format like the one stated above after the time "22:00-23:59". How do I make sure I run a formula of finding the date difference between system date .i.e today with the date in the subject line and then if it is less than 10 days, make a rule to move it to a specified folder "<10days".

      • Diane Poremsky says

        February 13, 2018 at 8:54 am

        As long as the date format is the same, regex can find it. you'd use a pattern something like ((\w)[3]\s(\d)[1,2],\s(\d)[4] VBA can convert it to a date value, which is subtracted from today's date.
        You'd use this code or similar: https://www.slipstick.com/developer/run-a-script-rule-autoreply-using-a-template/#webform

        Although used for other purposes, there are regex samples at https://www.slipstick.com/developer/regex-parse-message-text/

        (I'm not good at writing regex off the top of my head, so it might not be exactly correct, but will be similar.)

  5. Aaron Rizo says

    November 15, 2017 at 4:27 pm

    Hello all!

    I need a bit of help with a script from this page. Essentially, I'm trying to set up a script in Outlook that will take an email that I'm receiving from a "No Reply" and use the email address in the body to reply to it instead with a template. The script I'm using is from the "Reply to a web form generated message" and I keep getting an error when it's running that states "Object required: Error 424." Any help would be much appreciated!

    Reply
    • Diane Poremsky says

      November 16, 2017 at 12:59 pm

      Do you know which line it dies on? Are you properly referring to the reply message?

      Set oRespond = Item.Reply
      oRespond.to strAddress 'replaces the reply address with strAddress value

      Reply
  6. Ashish says

    July 14, 2017 at 8:40 am

    Hi Diane, I am trying out your code for 'Reply to a web form generated message' and it does not work for me. I changed the .Display to .Send but nothing happens. I tried to run the rule manually several times & upon receiving a new message but the AutoSend does not send any reply. Can you please confirm anything to be configured in addition to the script? Thank you.

    Reply
    • Diane Poremsky says

      July 14, 2017 at 11:31 pm

      Does it display the message all properly filled out and formatted, when you have it set to .display?

      Reply
  7. Channing Workman says

    June 6, 2017 at 12:30 pm

    Diane,

    Thank you for your excellent example! It has been very helpful to me.

    I'm struggling a tad on a regex expression.

    I would like to extract an email address from the Emails body

    --Formatted as such--
    Email Address: test@gmail.com

    The email address is a blue link when I open the email and I'm not sure that may have something to do with it.

    This is my expression:

    .Pattern = "(Email Address[:]([w-s]*)s*)n"
    .Global = False

    Any thoughts?

    Thank you!

    Channing

    Reply
    • Diane Poremsky says

      July 14, 2017 at 11:37 pm

      Sorry i missed this, i thought I replied before. :( As long as the address is on one line, you can use

      "(Email Address[:]\s*(.*))\n?"

      I've also used ((.*)@(.*)) for the address.

      Reply
  8. Ernst says

    November 29, 2016 at 4:54 am

    Hi Diane,
    I am trying to use your "Autoreply to Reply To Address, Not Sender" script to create a rule sending a server-side response to people who've filled a form on my website. Outlook apparently needs to be running for this rule to function, do you confirm? Is there a workaround? I am setting this rule on a noreply address which I do not open via Outlook.
    Thanks for your support.
    Ernst

    Reply
  9. john holstein says

    August 15, 2016 at 1:26 pm

    Your autoreplywithtemplate worked fine for me for well over a year. Something changed outside of the code (no modifications were made to the VB code to make it stop working) now, when it finishes, after a few minutes, the reply goes into "Drafts" (rather than sending, as it did for a year or more) and I then have to manually go into Drafts, open it, hit the send button and away it goes.

    Any idea how this happened or a fix? I figured it was an automatic update to my Outlook (Office 2007).

    /john

    Reply
    • Diane Poremsky says

      August 17, 2016 at 7:48 am

      The macro is using .Send, not .Save? Send should send it... Any idea when (what month might be close enough), it stopped sending?

      Reply
  10. Prabhu Jambulingam says

    June 20, 2016 at 5:46 am

    Hello Diane,

    I am using this autoreply script of yours and it has been working well until I upgraded to outlook 2016. Once its upgarded to 2016 - it stopped working. Could you pls help me out to fix this in outlook 2016.

    Thanks,
    Prabhu.

    Reply
    • Diane Poremsky says

      August 17, 2016 at 7:50 am

      Is macro security set to low? This is the usual cause.
      Any error messages? (If not, comment out any on error resume next lines so errors come up)

      Reply
  11. Joana Villas-Boas says

    June 10, 2016 at 12:08 pm

    Hello Diane, Reply to a web form generated message was just what I was looking for and it worked fine in my PC but I cant find the same option on Outlook 11 for Mac. Do you know how to do the same on a Mac?

    Reply
    • Diane Poremsky says

      June 10, 2016 at 2:35 pm

      AFAIK, you can't do this on mac. VBA definitely won't work... the only hope is if you can do it using apple script, although I'm not an apple script expert by any means.

      Reply
  12. Leon C says

    May 10, 2016 at 1:23 pm

    Hi Diane,
    I have another question for "reply with a template" code. My template has screenshots in between the text. Those screenshots were not available when I use "reply with a template" code. Is it possible to have those screenshots (not as separated attachment) within the text? do you know the code to achieve that.
    Thanks!
    Leon

    Reply
    • Diane Poremsky says

      May 10, 2016 at 11:58 pm

      If they are embedded in the html, it should work. Or put them on a webserver and link to them.

      Reply
      • Leon C says

        May 11, 2016 at 12:59 pm

        Diane, thanks for replying. The screenshots are actually inside of mytemplate.oft file. The screenshots became empty white box with error message inside and it said "the linked image cannot be displayed. The file may have been moved, renamed, or deleted. Verify that the link points to the correct file and location."
        I can sent my code to you if you want to take a look.
        thanks
        Leon

      • Diane Poremsky says

        May 11, 2016 at 1:27 pm

        The source code would be great, especially for the new message. I'm guessing the images are linked using file://c:/something/picture.png and when it opens as a template, the path becomes file://c:/temp folder/picture.png... I'll look into it.

      • Leon C says

        May 12, 2016 at 2:01 pm

        Diane, I went back to your code and studied it. I figured out where I made the mistake...
        However, it seems the code "Reply with a template" will reply with images from template but not from the original body. Could you please verify that?

        Thanks
        Liang

      • Diane Poremsky says

        May 12, 2016 at 3:40 pm

        Correct, when you use reply with template, the template replaces the original message body.

      • Leon C says

        May 12, 2016 at 4:44 pm

        Is there a way to keep both (images from the template and images from the original body), Diane?

      • Diane Poremsky says

        May 12, 2016 at 5:38 pm

        possibly - are they embeded in HTML or attached? If attached, it's not difficult to reattach the to the new message. If they are embedded, you need to copy and paste the body - into the new message.

      • Leon C says

        May 14, 2016 at 11:45 am

        HI Diane, they are embedded. So, "copy and paste the body", is there a way to express it with VBA?

      • Diane Poremsky says

        May 14, 2016 at 6:51 pm

        it would be .htmlbody = .htmlbody & item.htmlbody (item. is the orginial message object)

      • Leon C says

        May 18, 2016 at 12:26 pm

        sorry to get back this late, Diane. I got caught up on other projects.
        Could you please explain how to use this line of code as "Copy and Paste"? the reason I asked because this line of code is similar to "Reply with a template" code which you demonstrated. The results are the same, the original email pictures in the body did not show.
        "Copy and Paste" code
        .htmlbody = .htmlbody & item.htmlbody
        "Reply with a template" code
        HTMLBody = oRespond.HTMLBody & vbCrLf & _
        "---- original message below ---" & vbCrLf & _
        Item.HTMLBody & vbCrLf

        Thanks
        Liang

      • Diane Poremsky says

        August 17, 2016 at 9:20 am

        Sorry I just saw this...

        HTMLBody copies the formatting - but depending on how the pictures are inserted (as a link to the picture online or embedded), the pictures won't be included. It might work to use word's object model to copy the and paste the body to preserve the image. There is an example here that uses word objects: https://www.slipstick.com/developer/code-samples/paste-clipboard-contents-vba/#word

      • Diane Poremsky says

        May 11, 2016 at 1:30 pm

        BTW, how did you insert the images? If you open the template manually, are the images missing?

      • Leon C says

        May 11, 2016 at 9:01 pm

        Hi Diane, If the template open manually from the outlook, it will have the images. I will post my code. stay tune. Thanks for looking into it!

  13. Leon C says

    April 22, 2016 at 9:49 pm

    Dear Diane,
    I like the "Reply with a template" code. However, is it possible to have a header that include From: Sent: To: CC: and Subject:?
    It will be just like when you reply an email manually using outlook, it has something like that below:

    bbb,

    Good luck on your appointment.

    -Leon

    From: EXT-aaa, bbb
    Sent: Friday, April 22, 2016 10:10 AM
    To: DL Operations Team
    Cc: something, Thuy T; else, Bernard S
    Subject: OOO this afternoon for appt

    OOO this afternoon for appointment. Will check back online later.

    Regards,
    ext-aaa,bbb

    Reply
    • Diane Poremsky says

      April 22, 2016 at 11:24 pm

      You can create a text string using fields in the original message then insert it at the top of the message.
      InsertBefore code sample is here - https://www.slipstick.com/developer/code-samples/add-attachments-names-to-message-before-sending/

      Reply
  14. David N says

    March 15, 2016 at 7:26 pm

    Diane,

    Do you know of any issues with this macro working with Outlook 2016? I just upgraded and the client rule to run this macro isn't working, however, if I were to add this as a button to my ribbon, it works fine.

    Reply
    • Diane Poremsky says

      March 15, 2016 at 9:24 pm

      No, it should work fine. It was tested more than once in Outlook 2016 32-bit. It should work in 64-bit too. Which one are you using in the rule?

      Reply
  15. Jose says

    February 29, 2016 at 4:00 pm

    Reply to a web form generated message- How can use this macros plus add the original email that I received?

    Reply
    • Diane Poremsky says

      February 29, 2016 at 5:30 pm

      If not a macro on this page, then one of the other run a script macros i have. If you don't want to reply with a template, you can change this line:
      Set objMsg = Application.CreateItemFromTemplate("C:\path\to\template.oft")
      with Set objMsg = Application.CreateItem(olMailItem) to create a new message or set objmsg = Item.Forward

      Reply
  16. Jim says

    December 2, 2015 at 6:42 pm

    Hello Diane, I was wondering if you were aware of a good tutorial that would cover the following event flow: create a custom template, save it to disk, email auto generated by a tool that lists a user profile, regex and assign profile to a variable, assign variable to a new email or even forward the one that arrived in the auto generation process, send email. I don't mind reading books but I hope to get some guidance as my focus is not in VBS but other areas of computing. thanks. Jim

    Reply
  17. Chris says

    October 29, 2015 at 11:08 am

    Hi Diane--I get 6-10 emails each night indicating some sort of order has been placed. They all come from another internal employee and are sent to the external customer with me CC'd. What I would like to set up is a delayed auto-response ONLY to the external customer using a saved email template. How can I grab and reply only to the "To" field and use an oft file stored on my computer? It would be ideal if this script ran in the morning when I logged into my outlook client (Outlook 2013 via exchange server) rather than at 2 in the morning when the emails arrive. Thanks for any tips you can offer!

    Reply
    • Diane Poremsky says

      November 1, 2015 at 11:15 am

      A script will only run when outlook is running, so the timing wont be a problem if you don't leave outlook open all night, but even if you did, we could work around that.

      The address is not a problem either, just change a line to remove the sender address and add the to.
      With oRespond
      .to Item.to

      Reply
  18. darxter says

    October 23, 2015 at 4:06 am

    Thanks a lot. It works.

    Reply
  19. darxter says

    October 22, 2015 at 11:31 am

    Is it possible to include multiple recipients in .Recipients.Add.
    I tried with "name@domain.com;name2@domain.com" and "name@domain.com,name2@domain.com" but without luck.

    What is correct syntax?

    Thanks in advance

    Reply
    • Diane Poremsky says

      October 23, 2015 at 12:32 am

      no, you'll need to use one line for each or use .to - if you use the to field you'll replace existing recipients while Add adds to the list.
      .Recipients.Add "maryc"
      .Recipients.Add "billy@smith.com"

      Reply
  20. John DeCastro says

    October 20, 2015 at 12:48 pm

    Diane,

    I need to create a script for Outlook 2010 that will auto reply to all messages that come in when the office is closed. This would be set to run from 6pm-8am each day Mon-Thursday and 6pm to 8am continuously from Friday-Mon. I cannot seem to find a script to specify days and times. Can you help?

    Reply
  21. Justin says

    September 16, 2015 at 12:25 pm

    Would it be possible to reply with the senders name or email in the reply body as well as the subject line from the originating email using code similar to the one in your original post?

    Reply
    • Diane Poremsky says

      September 16, 2015 at 1:59 pm

      Yes, you can get the sender's display name and /or email address. Sender's name is item.sendername, but it could look goofy if they use last, first format as their display name.

      .HTMLBody = "Your reply text goes here." & item.senderemailaddress & vbCrLf & _
      "---- original body below ---" & vbCrLf & _
      Item.HTMLBody & vbCrLf & _
      "---- Template body below ---" & _
      vbCrLf & oRespond.HTMLBody

      Reply
  22. Scott says

    August 21, 2015 at 1:42 pm

    Also, I thought I should include the actual script:

    Sub AutoReplywithTemplate(Item As Outlook.MailItem)
    Dim oRespond As Outlook.MailItem

    ' Use this for a real reply
    ' Set oRespond = Item.Reply

    ' This sends a response back using a template
    Set oRespond = Application.CreateItemFromTemplate("C:\users\snissenbaum\desktop\VC Response.oft")

    With oRespond
    .Recipients.Add "snissenbaum@htgc.com"
    .Subject = "Your Subject Goes Here"
    .HTMLBody = "Your reply text goes here." & vbCrLf & _
    "---- original body below ---" & vbCrLf & _
    Item.HTMLBody & vbCrLf & _
    "---- Template body below ---" & _
    vbCrLf & oRespond.HTMLBody

    ' includes the original message as an attachment
    .Attachments.Add Item

    ' use this for testing, change to .send once you have it working as desired
    .Send
    End With
    Set oRespond = Nothing
    End Sub

    Thanks again!

    Scott

    Reply
  23. Scott says

    August 21, 2015 at 1:38 pm

    Hi Diane,

    I have been experiencing some trouble with all my scripts, none of them have sent even though I have included ".send" The parameters for the rule I am using are: Apply this rule after the message arrives, from invitations@linkedin.com, run Project1.AutoReplywithTemplate (my script) and mark it as read.
    Any ideas of what to do? Any script I use won't send, no matter what. I'll keep trying different scripts, but as of now nothing works. Thanks in advance.

    Scott

    Reply
    • Diane Poremsky says

      August 21, 2015 at 4:13 pm

      Don't use the mark as read action - put item.unread = false in the code. I usually put it at the end so if the macro errors, it won't be marked as read. Actions in run a script rules often fail - everything needs to be in the script. It's usually rhe action that fails, so I don't think this is the causing it not to send.

      Is it doing everything but sending? Does it open a message form if you change it to display?
      Is macro security set to low?

      Reply
  24. Ricky Gomez says

    June 25, 2015 at 11:59 am

    Hi I created a rule to run this code and it works except when including the original body (Item.HTMLBody) which is blank.

    Is anybody else having this problem?

    I googled it and it seems a lot of people are having this problem with no solution.

    This happens if I create a rule and assign it this macro. The funny thing is that it works well if I run the rule manually once the item is in the inbox.

    But when it runs automatically when an item arrives it does not work and always puts a bland body.

    When I debug the code the body looks like this:

    Some of the solutions online stated to add .Save before .Send but it doesn't fix it

    Reply
    • Diane Poremsky says

      June 28, 2015 at 7:41 pm

      I'll do some testing and see if i can figure out why it might be failing. I know too much mail, too fast can cause rules to fail, including too many messages that use the script. Passing the work load off to a second rule often works. This example passes everything off but you could do some stuff in the first script before handing it off. It really depends on what all you are doing.

      Sub SendNew(Item As Outlook.MailItem)
      processmessage item
      end sub

      private sub processmessage(item as mailitem)
      ' do whatever
      end sub

      Reply
  25. Jen Epstein says

    June 16, 2015 at 10:22 pm

    Hi there, thanks for the VERY helpful post!

    I've added the VBA code for "Reply to a web form generated message" and it works, but I have to manually send out this message.

    Is there any way to have VBA code to auto-reply to a web form generated message?

    So when I receive an email, the script would extract the email in the body and then auto-reply.

    Again, thanks for your help!
    -Jen

    Reply
    • Diane Poremsky says

      June 28, 2015 at 7:25 pm

      Change .Display to .Send - use .Display for testing so you can see it's working properly, then change it to .Send to fully automate it.

      Reply
  26. Nand says

    April 21, 2015 at 12:38 am

    I am brand new to script writing and have absolutely no experience in writing any form of code. Please forgive my questions that are very basic.

    1. Can you please tell me if the script written at the very top of the page under "reply with a template" will send a message using both the senders name and the actual email sent to. In other words, when I normally (manually) reply to an email in Outlook 2010 - the senders name and email address is in the To box. This makes it easier to find previous emails sent to an individual in the past. Can (should) -

    .Recipients.Add Item.SenderEmailAddress

    be changed to add (or substitute) the senders name and email?

    With oRespond
    .Recipients.Add Item.SenderEmailAddress
    .subject = "Your Subject Goes Here"
    .HTMLBody = oRespond.HTMLBody & vbCrLf & _
    "---- original message below ---" & vbCrLf & _
    Item.HTMLBody & vbCrLf

    ' includes the original message as an attachment
    .Attachments.Add Item

    2. In the .subject = "Your Subject Goes Here" - I assume this can be changed to
    .subject = item.subject

    if one wants to keep the original subject line?

    3. If one wants to keep the original message in the reply (and not as an attachment) then should the

    .Attachments.Add Item

    line be removed from the code?

    4. Does the following remain unchanged if the original email content is to be included at the bottom of the reply email (in order to be able to see the original email in the reply email)

    .HTMLBody = oRespond.HTMLBody & vbCrLf & _
    "---- original message below ---" & vbCrLf & _
    Item.HTMLBody & vbCrLf

    5. My ultimate aim is to be able to make a rule that includes this script and

    a. manually run the rule on a folder with a collection of emails that need to be responded to using the SAME response template (I would like to be able to change and update the template.oft file from time to time - and I am aware how to do so. The template is in HTML format and I would want to maintain that). Otherwise everything I want to do can be otherwise done using a shortcut key with QuickSteps - which does not do HTML!!

    b. The reply email will have the original senders name and email address in the To box - making it easier to find the previously emails to an individual

    Any help you can provide is deeply appreciated. Thank you.

    Reply
  27. Diane Poremsky says

    March 27, 2015 at 10:05 am

    To manually run these macros on a selected message, use this code, replacing the macro-name as needed.

    Public Sub RunManaully()
    Dim objItem
    Set objItem = Application.ActiveExplorer.Selection.Item(1)
    AutoReplywithTemplate Item
    End Sub

    Reply
    • Nos says

      March 30, 2015 at 2:09 am

      I want this to run automatically without a macro... (Thanks for above though.)

      Where should I save/write the code:

      Sub AutoReplywithTemplate(Item As Outlook.MailItem)
      Dim oRespond As Outlook.MailItem
      'Use this for a real reply
      'Set oRespond = Item.Reply

      'This sends a response back using a template
      Set oRespond = Application.CreateItemFromTemplate("C:\Program Files\Microsoft Office\Templates\1033\MAIL.oft")

      With oRespond
      .Recipients.Add Item.SenderEmailAddress
      .Subject = "RECEIPT CONFIRMATION"
      .HTMLBody = "Thank you " & vbCrLf & _
      Recipients.Add & vbCrLf & _
      " for your e-mail about " vbCrLf & _
      Item.Subject & vbCrLf & _
      ". The matter raised will be attended to by officials relevant to this matter." & vbCrLf & _
      "---- original body below ---" & vbCrLf & _
      Item.HTMLBody & vbCrLf & _
      "---- Template body below ---" & _
      vbCrLf & oRespond.HTMLBody

      'includes the original message as an attachment

      .Attachments.Add Item

      ' use this for testing, change to .send once you have it working as desired
      .Display

      End With
      Set oRespond = Nothing
      End Sub

      Steps I followed was:

      1. I had the idea of sending a reply message everytime I receive a message.

      2. I've created/set a rule for, after receiving a mail, send reply message using a saved template: at the moment just my e-mail signature. I wish to make this message more 'personal' and want to add the recipients name.

      3. Then browsed for help and found your help: I learned that Outlook will only sent this reply once per session. Founding your code seemed beter than what Outlook offers.

      4. I then opened Microsoft Outlook | Developer | Visual Basic and created a "module 1". (I wish I could sent a screenshot to you!) Is this the right place? A blank screen opened where I've written the code above...

      5. I don't know programming. I "run" the program and it's asking to create a macro..? I don't want a macro. So, did I save this incorrectly?/Tried the coding at the incorrect place?

      Reply
    • Nos says

      July 16, 2015 at 5:23 am

      Hallo Diane. I still don't have this script running... (I wish I could enrol for a VBA programming course!)

      I refer to your comment before mine above (March 27, 2015 at 10:05 am):

      I came to realise that I don't know what a VBA macro is... (what it "looks" like) And therefor did not understand the said comment the way you might have liked me to understand it. You've provided code for manually checking the script. Unfortunately I don't even know whether that must be at the bottom of the script I already have or above!? I also don't know how to replace "the macro-name as needed"... I have then again tried to run the script in such a way to display: I've aked a colleague to send me mail, but I do not view (the reason for .display I guess) the proposed mail that will be sent to him... I've made the rule run from "run rules now" and an error message appeared:

      RULES IN ERROR
      Rule (name): where my name is in the To box
      Error: The script "" doesn't exist or is invalid.

      Which way will be better to help me: manually run the macro in order to preview the mail that will be sent (as written per script) or through .Display? Please help me...

      Reply
      • Diane Poremsky says

        August 21, 2015 at 4:09 pm

        This error :
        RULES IN ERROR
        Rule (name): where my name is in the To box
        Error: The script "" doesn't exist or is invalid.

        Means it is looking for a script named something like this but is not finding it.
        Sub AutoReplywithTemplate(Item As Outlook.MailItem)

        Rules only work with macros named in that format.

        to manually check a script, put this after the macro and select a message then run the macro. The name of your macro goes in the script in place of AutoReplywithTemplate
        Public Sub RunManaully()
        Dim objItem
        Set objItem = Application.ActiveExplorer.Selection.Item(1)
        ' this is the name of your macro
        AutoReplywithTemplate Item
        End Sub

  28. Nos says

    March 27, 2015 at 5:34 am

    1. I want to have an automated message on all mail received (via Outlook 2010).
    2. Thank you Diane! Visiting this site helped so far.
    3. I do not have VB programming knowledge - my query thus of "lower grade"...
    4. I want (tried) the following (from your instructions given on top):

    Sub AutoReplywithTemplate(Item As Outlook.MailItem)
    Dim oRespond As Outlook.MailItem
    'Use this for a real reply
    'Set oRespond = Item.Reply

    'This sends a response back using a template
    Set oRespond = Application.CreateItemFromTemplate("C:\Program Files\Microsoft Office\Templates\1033\MAIL.oft")

    With oRespond
    .Recipients.Add Item.SenderEmailAddress
    .Subject = "RECEIPT CONFIRMATION"
    .HTMLBody = "Thank you " & vbCrLf & _
    Recipients.Add & vbCrLf & _
    " for your e-mail about " vbCrLf & _
    Item.Subject & vbCrLf & _
    ". The matter raised will be attended to by officials relevant to this matter." & vbCrLf & _
    "---- original body below ---" & vbCrLf & _
    Item.HTMLBody & vbCrLf & _
    "---- Template body below ---" & _
    vbCrLf & oRespond.HTMLBody

    'includes the original message as an attachment

    .Attachments.Add Item

    ' use this for testing, change to .send once you have it working as desired
    .Display

    End With
    Set oRespond = Nothing
    End Sub

    5.1 When I want to run (F5) above, I'm asked to create a macro. Should I create a macro now?
    5.2 The HTMLBody might not be correct. May you assist me?

    Reply
    • Diane Poremsky says

      March 27, 2015 at 9:55 am

      These macros are triggered by rules, not run manually.

      What problem are you having with the html body format?

      Reply
  29. richnik says

    March 16, 2015 at 2:44 am

    Been trying the sample codes above to start me off, but whenevey I click on run, it asks me for the macro name. So I create one but it only has the

    Sub fr()

    End Sub

    What am I missing here? Thanks.

    Reply
    • Diane Poremsky says

      March 27, 2015 at 9:51 am

      These macros run using rules or other automated methods, you don't run them manually. if you want to test an automatic macro, you can call it using another macro but need to set the item to run it on.

      Reply
  30. willkoper says

    March 9, 2015 at 5:30 pm

    Is there an elegant way to test if the message is a reply to a message previously sent, e.g. to avoid an endless autoreply loop?

    Reply
    • Diane Poremsky says

      March 9, 2015 at 5:54 pm

      Define "elegant". :) You could search the sent folder for a match... or if you can count on the autoreply's subject being tagged as an autoreply (or having specific text), you can check for that.

      The subject test is easier...

      Either of these snippets should work for search (they need some objects dim and set yet) - i don't know which is faster.

      For Each objItem In SentFolder.Items
      If InStr(1, objItem.subject, item.subject) Then
      exit sub
      End If
      Next

      or this format
      strSearch = "[subject] = " & item.subject
      Set objItem = colItems.Find(strSearch)

      Reply
    • willkoper says

      March 9, 2015 at 6:58 pm

      Touché :)

      I had originally been thinking to check for the sender's email in the body, e.g. "XXXX wrote:", but searching the subject is much easier (especially since I'm setting that anyway).

      Just using If InStr ( item.Subject, "") = 0 to check the original message and reply if the phrase is not found.

      Thanks for the script!

      Reply
  31. kyle says

    November 24, 2014 at 4:28 pm

    I try to debug the code and it seems it is not working at the .Recipients.add recip

    Here is what I have:

    Sub AutoReplywithTemplate(Item As Outlook.MailItem)

    Dim oRespond As Outlook.MailItem
    ' Use this for a real reply
    ' Set oRespond = Item.Reply
    ' This sends a response back using a template

    Set oRespond = Application.CreateItemFromTemplate("C:\Users\ksmith23\Desktop\RequesterEmail.oft")
    .Recipients.Add recip
    Dim Recipients As Outlook.Recipients
    Dim oRecip As Recipient
    Dim recip As String

    Set Recipients = Item.Recipients

    For i = Recipients.Count To 1 Step -1
    Set oRecip = Recipients(i)
    If oRecip.Type = olCC Then
    recip = Recipients.Item(i).Address
    End If
    Next

    With oRespond
    .Recipients.Add Item.SenderEmailAddress
    .Subject = "Your Subject Goes Here"
    .HTMLBody = "Your reply text goes here." & vbCrLf & _
    "---- original body below ---" & vbCrLf & _
    Item.HTMLBody & vbCrLf & _
    "---- Template body below ---" & _
    vbCrLf & oRespond.HTMLBody
    ' includes the original message as an attachment
    ' .Attachments.Add Item
    ' use this for testing, change to .send once you have it working as desired
    .Send
    End With
    Set oRespond = Nothing
    End Sub

    Reply
    • Diane Poremsky says

      November 25, 2014 at 12:10 am

      You need to replace Item.SenderEmailAddress with recip:
      .Recipients.Add Item.SenderEmailAddress
      becomes
      .Recipients.Add recip

      Reply
  32. kyle says

    November 24, 2014 at 3:19 pm

    That fixed the error. Thanks.

    Reply
  33. kyle says

    November 24, 2014 at 2:36 pm

    Compile Error: Expected Expression.

    Here is the code I have so far. Like I said, I have not done VBA, but I am trying to learn, so I probalby messed it up pretty good.

    Sub AutoReplywithTemplate(Item As Outlook.MailItem)

    Dim oRespond As Outlook.MailItem
    ' Use this for a real reply
    ' Set oRespond = Item.Reply ' This sends a response back using a template
    Set oRespond = Application.CreateItemFromTemplate("C:\Users\ksmith23\AppData\Roaming\Microsoft\Templates\*.oft")
    .Recipients.Add recip
    Dim Recipients As Outlook.Recipients
    Dim oRecip As Recipient
    Dim recip As String

    Set Recipients = Item.Recipients
    For i = Recipients.Count To 1 Step -1
    Set oRecip = Recipients(i)
    If oRecip.Type = olCC Then
    recip = Recipients.Item(i).Address
    End If
    Next

    With oRespond
    .Recipients.Add Item.SenderEmailAddress
    .Subject = "Your Subject Goes Here"
    .HTMLBody = "Your reply text goes here." & vbCrLf & _
    "---- original body below ---" & vbCrLf & _
    Item.HTMLBody & vbCrLf & _
    "---- Template body below ---" & _
    vbCrLf & oRespond.HTMLBody
    ' includes the original message as an attachment .Attachments.Add Item
    ' use this for testing, change to .send once you have it working as desired
    .Display End With Set oRespond = Nothing End Sub

    Reply
    • Diane Poremsky says

      November 24, 2014 at 3:08 pm

      It might be due to the missing line breaks here:.Display End With Set oRespond = Nothing End Sub
      it should be 4 lines:
      .Display
      End With
      Set oRespond = Nothing
      End Sub

      Reply
  34. kyle says

    November 24, 2014 at 1:49 pm

    Where would I put in the email address of the original sender in the code? I am also getting an error on the last line.
    .Display End With Set oRespond = Nothing End Sub

    Thanks for all the help.

    Reply
    • Diane Poremsky says

      November 24, 2014 at 2:21 pm

      Replace the recipients.add line with
      .Recipients.Add recip

      What error are you getting?

      Reply
  35. kyle says

    November 24, 2014 at 10:19 am

    Is it possible to use the script at the top "Auto reply using a template" to only send the template the the person that is CC'd on the received email. In my case, I will get an autogenerated email from a system with the actual requester CC'd on the email, but I only need the template to be sent automatically to the CC'd individual and not the From address.

    I figured the line below is what I need to modify, but I do not know VBA to know what the CC'd area is so I can modify it.

    .Recipients.Add Item.SenderEmailAddress

    Reply
    • Diane Poremsky says

      November 24, 2014 at 11:38 am

      You need to up the recipients collection - put this before the With oRespond (i put it before the Set orespond line) and use .Recipients.Add recip
      Dim Recipients As Outlook.Recipients
      Dim oRecip As Recipient
      Dim recip As String

      Set Recipients = Item.Recipients
      For i = Recipients.Count To 1 Step -1
      Set oRecip = Recipients(i)
      If oRecip.Type = olCC Then
      recip = Recipients.Item(i).Address
      End If
      Next

      Reply
  36. Tuhin Banerjee says

    June 6, 2014 at 7:03 am

    I receive some 100 mails which i keep in a certain folder. I want to create a macro which will help me to send all the mails to the desired receipients (mails coming from the IDs) keeping a certain bunch of iDs in loop with a predefined templates. Pl help to resolve my query

    Reply
    • Diane Poremsky says

      June 12, 2014 at 9:57 am

      So you want to reply with template1 if ID1 and use template2 if from ID2? That is possible. You need to use either an if statement or select case to identify the id and call up the right template.

      Reply
  37. Rod says

    November 12, 2013 at 5:41 am

    Thanks. That did indeed take care of it.

    Reply
  38. Rod says

    November 11, 2013 at 1:36 pm

    Thanks for the great post. I am using your auto-reply with some changes to support our needs. I have verified that the rule is running and at one point it told me a macro was going to run and I chose "enable", so I think it is trying to run. However, it never displays anything and if I try to put a break point in, it doesn't hit it. Here's the code:

    **************
    Sub AutoReplyToLoginRequest(Item As Outlook.MailItem)
    Dim Reg1 As Object
    Dim M1 As Object
    Dim M As Object
    Dim strAddress As String

    Set Reg1 = CreateObject("VBScript.RegExp")

    With Reg1
    .Pattern = "(([\w-\.]*\@[\w-\.]*)\s*)"
    .IgnoreCase = True
    .Global = False
    End With

    If Reg1.Test(Item.Body) Then

    Set M1 = Reg1.Execute(Item.Body)
    For Each M In M1
    strAddress = M.SubMatches(1)
    Next
    End If

    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    objMsg.Recipients.Add strAddress

    ' Copy the original message subject
    objMsg.Subject = "Some Subject"
    objMsg.HTMLBody = "Some message"

    ' use for testing
    objMsg.Display

    'objMsg.Send

    End Sub

    **************
    Thoughts?

    Reply
    • Diane Poremsky says

      November 11, 2013 at 2:17 pm

      In Outlook 2010 or 2013, go to File, Options, Trust Center - Macro Settings and verify macros are enabled. (Tools, Trust center in Outlook 2007) I think the problem is the permissions - after its working and you no longer need to edit it, you can set sign the macro using selfcert and set the macro security higher.

      Reply
  39. Joseph says

    May 29, 2013 at 1:56 pm

    Yes, it seems that the rules to send an automatic email when I'm out can not be tied to a calendar event. I guess because the calendar is kind of separate from the mail part of Outlook and they do not communicate.

    Reply
    • Diane Poremsky says

      May 29, 2013 at 3:36 pm

      Yes, that is more or less correct.

      Reply
  40. Joseph says

    May 29, 2013 at 1:33 pm

    Thank you for your help! I'm not sure it is possible at this point. Good luck!

    Reply
    • Diane Poremsky says

      May 29, 2013 at 1:54 pm

      My initial thought is that it is not possible, but it will be interesting to look into doing it.

      Reply
  41. Joseph says

    May 29, 2013 at 11:15 am

    Rules and Alerts.

    Reply
  42. Joseph says

    May 29, 2013 at 9:00 am

    and I've tried this code with a script in the rules but it did not send auto replies when my calendar event showed me as out of office:

    Sub AutoReplywhenOut(Item As Outlook.MailItem)
    Dim oRespond As Outlook.MailItem
    If Item.Class = olAppointment And _
    Item.Category = "Out of Office" Then

    oRespond
    .Recipients.Add Item.SenderEmailAddress
    .Subject.Add Item.Subject
    .HTMLBody = "I am currently out of the office" & vbCrLf & _
    "---- original body below ---" & vbCrLf & _
    Item.HTMLBody & vbCrLf & _
    "---- Template body below ---" & _
    vbCrLf & oRespond.HTMLBody

    ' use this for testing, change to .send once you have it working as desired
    .Send
    End If
    Set oRespond = Nothing
    End Sub

    Reply
    • Diane Poremsky says

      May 29, 2013 at 1:31 pm

      This won't work for your purposes either. Sorry. I'll see what i can come up with that is better than using a reminder to turn a rule on.

      Reply
  43. Joseph says

    May 29, 2013 at 8:48 am

    This is the current code I'm trying without using rules. I was hoping it would work with a calendar event marked at "out of office".

    Private WithEvents Items As Outlook.Items

    Private Sub Application_Startup()
    Dim Ns As Outlook.NameSpace
    Set Ns = Application.GetNamespace("MAPI")
    Set Items = Ns.GetDefaultFolder(olFolderCalendar).Items
    End Sub
    Private Sub Items_ItemAdd(ByVal Item As Object)
    On Error Resume Next

    If Item.Class = olAppointment And _
    Item.FreeBusyStatus = "Out of Office" Then

    Dim objMsg As MailItem
    Set objMsg = Application.CreateItem(olMailItem)

    objMsg.To = Item.SenderEmailAddress
    objMsg.Subject = Item.Subject
    objMsg.Body = "I am currently out of the office."

    'use Display instead of Send if you want to add a note before sending
    objMsg.Send

    Set objMsg = Nothing

    End If

    End Sub

    Reply
    • Diane Poremsky says

      May 29, 2013 at 1:29 pm

      Did you restart outlook or click in the Application_startup macro and press Run (F8) ? You also need macro security set to low but... this isn't going to work as it applies only when the appointment is added to the calendar. You want to check the calendar and send an OOF without setting enabling the OOF option.

      You could use a rule, enabled by a macro that belongs to an appt marked OOF. Enable or disable an Outlook rule using reminders and VBA.

      Reply
  44. Joseph says

    May 29, 2013 at 8:41 am

    Rules and Alerts. I've also tried doing it without Rules and Alerts and just having the code in the ThisOutlookSession like you suggested above but that didn't work either.

    Reply
  45. Joseph says

    May 29, 2013 at 7:40 am

    I tried this for the "Out of Office" events but the script does not show up in the rules script selection window.

    Reply
    • Diane Poremsky says

      May 29, 2013 at 8:39 am

      Are you in the Out of Office screen or Rules & Alerts? These scripts do not work in Out of Office settings for Exchange Server, only Rules & Alerts.

      Reply
  46. Avary says

    May 9, 2013 at 4:17 pm

    THANK YOU!!!!!!! This helps me so much! I have been trying to figure out how to do this for several months. Your helpful post has helped me accomplish something I have been working on for several months. Thank you so much for this helpful information!

    Reply
  47. jimdernie@gmail.com says

    April 16, 2013 at 6:54 am

    can you use a script to send auto replies to people automatically if you have posted an item in your outlook calendar and marked it as out of office?

    Reply
    • Diane Poremsky says

      April 16, 2013 at 7:21 am

      Yes, you can use a macro similar to Send an email when you add an appointment to your calendar to do that.

      you'd replace
      Item.Category <> "private" Then
      with
      Item.FreeBusyStatus <> "Out of Office" Then

      Reply
  48. Marlon says

    March 4, 2013 at 8:30 am

    is there a way to to "reply all" to multiple messages at once?

    Reply
    • Diane Poremsky says

      March 4, 2013 at 8:57 am

      You can use a rule and Run Rules Now. I recommend moving the messages you want to reply to, to a new folder and running the rule on that folder. You could also do it using VBA but I don't think I have any code samples that do it, so you'd need to write your own or tweak one I do have.

      Reply
      • Syed says

        November 23, 2017 at 5:17 am

        hi Diane, I want to write a scipt to setup a rule that will look for specific keywords in the subject and then open a web interface and fill out a form using the subject and body, and submit the information and close the web page. Could you please advise?

      • Diane Poremsky says

        November 23, 2017 at 10:48 am

        the first part is easy - to fill in web forms, you need to have the name of the form elements. See https://www.slipstick.com/developer/code-samples/open-hyperlinks-email-message/#comment-208236 for the basics.

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Visit Slipstick Forums.
What's New at Slipstick.com

Latest EMO: Vol. 31 Issue 3

Subscribe to Exchange Messaging Outlook






Support Services

Do you need help setting up Outlook, moving your email to a new computer, migrating or configuring Office 365, or just need some one-on-one assistance?

Our Sponsors

CompanionLink
ReliefJet
  • Popular
  • Latest
  • Week Month All
  • Jetpack plugin with Stats module needs to be enabled.
  • Error Opening iCloud Appointments in Classic Outlook
  • Opt out of Microsoft 365 Companion Apps
  • Mail Templates in Outlook for Windows (and Web)
  • Urban legend: Microsoft Deletes Old Outlook.com Messages
  • Buttons in the New Message Notifications
  • Move Deleted Items to Another Folder Automatically
  • Open Outlook Templates using PowerShell
  • Count and List Folders in Classic Outlook
  • Google Workspace and Outlook with POP Mail
  • Import EML Files into New Outlook
Ajax spinner

Recent Bugs List

Microsoft keeps a running list of issues affecting recently released updates at Fixes or workarounds for recent issues in classic Outlook (Windows).

For new Outlook for Windows: Fixes or workarounds for recent issues in new Outlook for Windows .

Outlook for Mac Recent issues: Fixes or workarounds for recent issues in Outlook for Mac

Outlook.com Recent issues: Fixes or workarounds for recent issues on Outlook.com

Office Update History

Update history for supported Office versions is at Update history for Office

Outlook Suggestions and Feedback

Outlook Feedback covers Outlook as an email client, including Outlook Android, iOS, Mac, and Windows clients, as well as the browser extension (PWA) and Outlook on the web.

Outlook (new) Feedback. Use this for feedback and suggestions for Outlook (new).

Use Outlook.com Feedback for suggestions or feedback about Outlook.com accounts.

Other Microsoft 365 applications and services




New Outlook Articles

Error Opening iCloud Appointments in Classic Outlook

Opt out of Microsoft 365 Companion Apps

Mail Templates in Outlook for Windows (and Web)

Urban legend: Microsoft Deletes Old Outlook.com Messages

Buttons in the New Message Notifications

Move Deleted Items to Another Folder Automatically

Open Outlook Templates using PowerShell

Count and List Folders in Classic Outlook

Google Workspace and Outlook with POP Mail

Import EML Files into New Outlook

Newest Code Samples

Open Outlook Templates using PowerShell

Count and List Folders in Classic Outlook

Insert Word Document into Email using VBA

Warn Before Deleting a Contact

Use PowerShell to Delete Attachments

Remove RE:, FWD:, and Other Prefixes from Subject Line

Change the Mailing Address Using PowerShell

Categorize @Mentioned Messages

Send an Email When You Open Outlook

Delete Old Calendar Events using VBA

VBA Basics

How to use the VBA Editor

Work with open item or selected item

Working with All Items in a Folder or Selected Items

VBA and non-default Outlook Folders

Backup and save your Outlook VBA macros

Get text using Left, Right, Mid, Len, InStr

Using Arrays in Outlook macros

Use RegEx to extract message text

Paste clipboard contents

Windows Folder Picker

Custom Forms

Designing Microsoft Outlook Forms

Set a custom form as default

Developer Resources

Developer Resources

Developer Tools

VBOffice.net samples

SlovakTech.com

Outlook MVP David Lee

Repair PST

Convert an OST to PST

Repair damaged PST file

Repair large PST File

Remove password from PST

Merge Two Data Files

Sync & Share Outlook Data

  • Share Calendar & Contacts
  • Synchronize two computers
  • Sync Calendar and Contacts Using Outlook.com
  • Sync Outlook & Android Devices
  • Sync Google Calendar with Outlook
  • Access Folders in Other Users Mailboxes

Diane Poremsky [Outlook MVP]

Make a donation

Mail Tools

Sending and Retrieval Tools

Mass Mail Tools

Compose Tools

Duplicate Remover Tools

Mail Tools for Outlook

Online Services

Calendar Tools

Schedule Management

Calendar Printing Tools

Calendar Reminder Tools

Calendar Dates & Data

Time and Billing Tools

Meeting Productivity Tools

Duplicate Remover Tools

Productivity

Productivity Tools

Automatic Message Processing Tools

Special Function Automatic Processing Tools

Housekeeping and Message Management

Task Tools

Project and Business Management Tools

Choosing the Folder to Save a Sent Message In

Run Rules on messages after reading

Help & Suggestions

Submit Outlook Feature Requests

Slipstick Support Services

Buy Microsoft 365 Office Software and Services

Visit Slipstick Forums.

What's New at Slipstick.com

Home | Outlook User | Exchange Administrator | Office 365 | Outlook.com | Outlook Developer
Outlook for Mac | Common Problems | Utilities & Addins | Tutorials
Outlook & iCloud Issues | Outlook Apps
EMO Archives | About Slipstick | Slipstick Forums
Submit New or Updated Outlook and Exchange Server Utilities

Send comments using our Feedback page
Copyright © 2026 Slipstick Systems. All rights reserved.
Slipstick Systems is not affiliated with Microsoft Corporation.