VBOffice

Send Emails Automatically

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

Last modified: 2006/01/19 | Accessed: 62.963  | #10
◀ Previous sample Next sample ▶
Category-Manager Category-Manager
Access the master category list in the blink of an eye, share your color categories in a network, get a reminder service, and more.

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"

  'Email
  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)
      oTask.Save

      'Create email
      Set oMail = Application.CreateItem(olMailItem)
      oMail.Subject = EmailSubject
      oMail.Body = Message
      oMail.Recipients.Add SendTo
      oMail.Recipients.ResolveAll
      oMail.Send
    End If
  End If
End Sub
OLKeeper OLKeeper
OLKeeper reliably prevents users from closing their Outlook window and thus possibly missing reminders or e-mails.
email  Send a message