Inspirado por Mike Hudson , escrevi o seguinte código VBA para você:
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Const morningTime As String = "06:30:00"
Const eveningTime As String = "19:00:00"
Dim mi As Outlook.MailItem
Dim dow As Integer
Dim time As String
Dim itIsLate As Boolean
On Error GoTo ErrorHandler
Set mi = Item
dow = Weekday(Date, vbMonday)
time = Format(Now, "HH:NN:SS")
itIsLate = (StrComp(time, eveningTime) > 0)
If (dow = vbSaturday) Or (dow = vbSunday) Or _
((dow = vbFriday) And itIsLate) Then
' Weekend! Delay until Monday morning
mi.DeferredDeliveryTime = (Date + (vbSunday - dow + 1)) _
& " " & morningTime
ElseIf itIsLate Then
' in the evening, delay until next morning
mi.DeferredDeliveryTime = (Date + 1) & " " & morningTime
End If
Exit Sub
ErrorHandler:
MsgBox "Application_ItemSend: " & Err.Description
End Sub
A sub-rotina é chamada sempre que você envia um email. Durante os finais de semana, a entrega está atrasada até a manhã de segunda-feira. Se o horário for depois do "período da tarde", a entrega está atrasada até a manhã seguinte. Por favor, faça alguns testes antes de realmente usar essa macro!