1

Мой босс хочет, чтобы все сообщения, которые я отправлял ему после 5 вечера, доставлялись в 8 часов утра следующего дня. Есть ли способ настроить это как правило в Outlook, чтобы мне не приходилось каждый раз менять его вручную?

2 ответа2

1

Хорошо. Так что поместите это в 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

Это решение в основном такое же, как предложено Райстафарианом, но с упрощенной логикой.

Использовать:
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 должно быть запущено в запланированное время доставки. Если вы открываете сообщение из папки «Исходящие», вы должны снова нажать «Отправить», иначе оно не будет отправлено.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .