Send Emails Automatically

See how to send emails automatically and regularly at certain intervals.

Last modified: 2006/01/19 | Accessed: 175.387  | #10
◀ Previous sample Next sample ▶
ReplyAll ReplyAll
ReplyAll alerts you before unintentionally replying all, or if you are a confidential BCC recipient of the e-mail.

Do you have to send an email every day at the same time? You can use a Reminder to achieve that.

Create a TaskItem with a unique subject and determine the reminder time. Set the ReminderSubject variable to your subject. Please see the DateAdd function in the sample: DateAdd('d', 1, oTask.ReminderTime) adds one day to the current reminder time. For a list of what parameter are possible, please set the cursor on to the function name (DateAdd) and press F1 for the VBA help.

tip  How to add macros to Outlook
Private Sub Application_Reminder(ByVal Item As Object)
  SendAutoEmail Item
End Sub

Private Sub SendAutoEmail(Item As Object)
  Dim oTask As Outlook.TaskItem
  Dim oMail As Outlook.MailItem
  Dim oFld As Outlook.MAPIFolder
  Dim ReminderSubject As String
  Dim EmailSubject As String
  Dim SendTo As String
  Dim Message As String

  'Task item
  ReminderSubject = "DailyMailReminder"

  SendTo = "name@domain.com"
  EmailSubject = "my daily email"
  Message = "this message was sent automatically"

  If TypeOf Item Is Outlook.TaskItem Then
    Set oTask = Item
    If LCase$(oTask.Subject) = LCase$(ReminderSubject) Then

      'Set next reminder
      oTask.ReminderTime = DateAdd("d", 1, oTask.ReminderTime)

      'Create email
      Set oMail = Application.CreateItem(olMailItem)
      oMail.Subject = EmailSubject
      oMail.Body = Message
      oMail.Recipients.Add SendTo
    End If
  End If
End Sub
Reporter Reporter
VBOffice Reporter is an easy to use tool for data analysis and reporting in Outlook. A single click, for instance, allows you to see the number of hours planned for meetings the next month.
email  Send a message