1

I am trying to achieve the following task :

It sometimes happen that I work a bit too late on the evening. I think it is a good practice not to send emails at anytime during the evening/night if there is no emergency. So I sometimes use the do not deliver before XXX option as described here

But it can happen that I have to send several emails at a time, which makes the standard procedure a bit tedious.

I was therefore wondering if there is a way to automate that, ideally throuth a shortcut. I have browsed throught the quick steps options, but it does not appear to be one of the possibilities.

So is there a way to do that ?

3 Answers3

1

I have not seen any shortcut to automate that in the years I have used Outlook (my own plus Exchange).

What you could do (I have done) is turn off Automatic Send / Receive. Even Scheduled Send / Receive will not work for this because of the irregular Send / Receive Interval (that is not each 1/2 hour or hour etc).

So turn off Auto Send / Receive, compose and send your emails. They will all sit in the Outbox.

Each morning to a Send / Receive to collect your emails and the late evening emails in Outbox will go out.

This appears to satisfy your need in the absence the shortcut you are looking for. This method will work for any recent version of Outlook and most likely for future versions as it is based on standard Outlook methodology.

1

Agree with John. Even to myself, I usually work offline on the evening, so that the messages would be in outbox, and it could be sent when I close it on morning, if you also don't need to receive many messages on the evening, you could try it : send/receive >work offline enter image description here

Jade
  • 802
0

A solution in VBA might look like this:

'
' Automatically send emails at the beginning of the work week if sent on the weekend.
'
' This method is triggered by Outlook before sending and allows to cancel the send.
'
' Messages with highPriority are still send.
'
' Inspired from: https://www.mikesel.info/delay-outlook-mail-sending/
'
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    On Error GoTo ErrHand                   'Error Handling
    Dim nxtMonday As String                 'Variable containing next Monday's date
    Dim objMailItem As MailItem             'Object to hold mail item
' Caution: This is also called in case of appointments/meeting requests
If TypeOf Item Is Outlook.MailItem Then

    Set objMailItem = Item                  'Set object to mail item just sent

    ' Always send important messages
    If objMailItem.Importance = olImportanceHigh Then
        Exit Sub
    End If

    If Weekday(Date, vbMonday) = 6 Then 'Check to see if todays weekday value is 6 (http://msdn.microsoft.com/en-us/library/82yfs2zh(v=vs.80).aspx)
        nxtMonday = Date + (2)           'As today is saturday, Monday is today + 2 days
        objMailItem.DeferredDeliveryTime = nxtMonday & " 08:00:00"   'Set delayed delivery time to today + 2 days
    End If

    If Weekday(Date, vbMonday) = 7 Then 'Check to see if todays weekday value is 7 / sunday
     nxtMonday = Date + (1)           'As today is Sunday, Monday is today + 1 day
     objMailItem.DeferredDeliveryTime = nxtMonday & " 08:00:00"   'Set delayed delivery time to today + 1 day
    End If

End If

Exit Sub

ErrHand: MsgBox ("An error has occured on line " & Erl & ", with a description: " & Err.Description & ", and an error number " & _ Err.Number)

End Sub