Мой босс хочет, чтобы все сообщения, которые я отправлял ему после 5 вечера, доставлялись в 8 часов утра следующего дня. Есть ли способ настроить это как правило в Outlook, чтобы мне не приходилось каждый раз менять его вручную?
2 ответа
Хорошо. Так что поместите это в ThisOutlookSession
через вкладку developer
в visual basic
Private Sub будет проверять для почтовых отправлений, которые to
вашему боссу (изменить адрес электронной почты, я думаю , что это может быть чувствительными к регистру)
Если это для вашего босса, он запустит макрос, который проверяет время и задерживает его. У меня были некоторые проблемы с кодом отправки в 8 утра , возможно, вам придется возиться с этим.
Private Sub application_itemsend(ByVal item As Object, cancel As Boolean)
Dim myItem As mailItem
Set myItem = item
If myItem.Class = olMail And myItem.To = "boss@company.net" Then
Call CheckSendTime
End If
End Sub
Public Sub CheckSendTime()
Dim myobj As Object
Dim myMail As mailItem
Dim WkDay As String
Dim MinNow As Integer
Dim SendHour As Integer
Dim SendDate As Date
Dim SendNow As String
'Set Variables
SendDate = Now()
SendHour = Hour(Now)
MinNow = Minute(Now)
WkDay = Weekday(Now)
SendNow = Y
'Check if after 5PM
If SendHour > 17 Then 'After 5 PM
SendHour = 34 - SendHour 'Send at 8 am next day
SendDate = DateAdd("h", SendHour, SendDate)
SendDate = DateAdd("n", -MinNow, SendDate)
SendNow = N
End If
'Send the Email
Set myobj = Application.ActiveInspector.CurrentItem
If TypeOf myobj Is Outlook.mailItem Then
Set myMail = myobj
'Check if we need to delay delivery
If SendNow = N Then
myMail.DeferredDeliveryTime = SendDate
End If
Else: myMail.Send
End If
End Sub
Некоторые источники отсюда
Это решение в основном такое же, как предложено Райстафарианом, но с упрощенной логикой.
Использовать:
1. В Outlook откройте редактор кода, Alt+F11.
2. В Project1> Объекты Microsoft Outlook дважды щелкните ThisOutlookSession
3. Вставьте код ниже в редактор.
4. Измените адрес электронной почты и временной диапазон по мере необходимости.
5. Нажмите кнопку Сохранить и закройте окно редактора кода.
6. Изменение безопасности макросов Outlook. Выберите «Файл»> «Параметры Outlook»> «Центр управления безопасностью». Нажмите Настройки центра управления безопасностью, затем Настройки макроса и выберите Уведомления для всех макросов.
7. Перезапустите Outlook и нажмите «Включить макросы» при появлении запроса.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim bossEmail As String
Dim delaySendAt As Date
Dim currentHour As Integer
bossEmail = "boss@company.net"
delaySendAt = (Date + 1) & " 8:01:00 AM"
currentHour = Hour(Now())
' Delay emails sent between 5PM and 8AM
If currentHour >= 17 Or currentHour < 8 Then
' where To field contains boss's email address (case insensitive)
' but don't delay message sent to boss and other recipients
If InStr(1, Item.To, bossEmail, vbTextCompare) > 0 _
And InStr(Item.To, ";") = 0 Then
Item.DeferredDeliveryTime = delaySendAt
End If
End If
End Sub
Сообщения электронной почты, отправленные в соответствии с указанными условиями, будут помещены в папку «Исходящие» при нажатии кнопки «Отправить», но не будут доставлены до указанного времени.
Для доставки сообщений приложение Outlook должно быть запущено в запланированное время доставки. Если вы открываете сообщение из папки «Исходящие», вы должны снова нажать «Отправить», иначе оно не будет отправлено.