Scheduled and recurring email in Outlook?

22

17

I need to send some emails at a specific time of the day and need to do it every day. How can I do it with Outlook?

Delay delivery helps to send mail at a specific of time; but how to create new mail to be sent for tomorrow?

enter image description here

Nam G VU

Posted 2013-08-22T02:46:36.460

Reputation: 10 255

1

If you don't mind some VBA, this approach might work for you: http://www.slipstick.com/developer/send-email-outlook-reminders-fires/

– kmote – 2013-09-03T20:26:02.870

THank you. I read through the macro but really don't get how to do it. Please guide me and put it into an answer rather than a comment to get accepted. – Nam G VU – 2013-09-04T14:12:45.763

I recommend adding more details to your post: Are the emails identical every day, or is the content automatically generated? Are the destination addresses identical? – kmote – 2013-09-04T15:39:33.727

Dear @kmote, the content and email are indentical every day – Nam G VU – 2013-09-05T01:00:58.467

Answers

28

OK, here is a quick explanation of one way to do this. It requires setting up a macro in the Outlook VBA editor. If you have never done this before, there is a bit of setup that you'll have to trudge through first. (Note that, while creating macros for Outlook is not hard, there are several places where mistakes can happen which can lead to confusion and frustration. If you are a beginner at this and want to continue, I highly recommend carefully reading the entire MSDN page linked to in the first step below.)

1. Open the VBA editor.

On the Outlook ribbon bar, click on the Developer tab (enable it here), and then click Visual Basic. If you don't have a Developer tab on your ribbon bar, you will have to enable it. Refer to the instructions on this MSDN page (scroll down to the section labelled "To enable the Developer tab". NOTE: you should also read the section of that site labelled "To enable macros"). Pressing the Visual Basic button will cause a whole new application to open up (the VBA editor); open ThisOutlookSession, the big pane in the middle is where your macro will go.

To use, press Alt+F11 to open the VBA editor then copy the code and paste it into ThisOutlookSession. (reference)

enter image description here

2. Paste the following macro at the bottom of the macro pane.

'Original function written by Diane Poremsky: http://www.slipstick.com/developer/send-email-outlook-reminders-fires/
Private Sub Application_Reminder(ByVal Item As Object)
  Dim objMsg As MailItem
  Set objMsg = Application.CreateItem(olMailItem)    

If Item.MessageClass <> "IPM.Appointment" Then
  Exit Sub
End If

If Item.Categories <> "Automated Email Sender" Then
  Exit Sub
End If

  objMsg.To = Item.Location
  objMsg.Subject = Item.Subject
  objMsg.Body = Item.Body
  objMsg.Send

  Set objMsg = Nothing
End Sub

3. Create a new Category.

The new created Category (how to) should be called Automated Email Sender (this is an arbitrary title, but if you change it, make sure to change it in the macro too).

4. Create a Calendar appointment.

Place the recipient emails in the "Location" field.

The "Subject" field of the appointment will be used as the Subject field of the email.

The "Body" of the appointment will be the Body of the email.

Set up the appointment to recur on whatever schedule you want. Make sure to set a reminder.

Set up the reminder time

Also, don't forget to assign the Category that you created in the previous step.

Test it out first by putting your own email address in the Location field.

enter image description here


That's it! As long as your macro security settings are set right, this macro will cause an email to be sent automatically whenever a reminder gets triggered on an appointment with the specified Category.

kmote

Posted 2013-08-22T02:46:36.460

Reputation: 2 322

1This can also be combined with a template, by changing the creation line in the VBA code to objMsg = Application.CreateItemFromTemplate("C:\Users\[USER]\AppData\Roaming\Microsoft\Templates\Test.oft"). – Andy Mercer – 2015-01-08T16:51:16.337

What if the computer is locked? – Tom Stickel – 2015-07-09T22:05:55.537

@kmote, this works perfectly if I have less then 5 emails. But when I try to set up a reminder and sending out emails to more than 20+ emails, the 'location box' doesn't seem to have enough space. Any suggestions? – kennyut – 2017-02-23T17:00:36.450

@kennyut, I'm not sure, but you might try using a Distribution List. (However, in that case, you might have to modify the code in the macro to unpack the list.) I don't have Outlook available to me right now, but if you give it a try and play around with it a little (set a breakpoint in the macro), you might be able to get it to work.

– kmote – 2017-02-28T04:00:14.500

Having trouble making this work? Check two things that took me far too long to notice: (1) Script must be placed in ThisOutlookSession, not in Module1 (as clearly documented in the article), and (2) Check that your emails are not going into your junk folder. – cssyphus – 2018-07-27T15:58:09.683

1Awesome it works for me ^^ Thank you so much! – Nam G VU – 2013-09-05T03:53:39.830

2@kmote Question, what importance does the reminder have in making this work? I didn't notice it in the code. – SiegeX – 2014-05-09T00:18:37.457

1@SiegeX: notice the name of the function (Application_Reminder). This is a built-in Outlook event handler that gets called automatically by Outlook whenever a reminder fires. So the Reminder is the trigger that makes this work. – kmote – 2014-05-09T20:45:07.853

@kmote I see, so if I set the appt time to 2PM and have the reminder set to 30mins before the appt, the email will fire off at 1:30PM instead of 2PM? – SiegeX – 2014-05-11T01:13:43.610

@SiegeX, yes that is how it should work. – kmote – 2014-05-11T22:58:36.193