2

В Outlook есть функция, которая позволяет мне планировать свои электронные письма для последующей доставки - мне нравится, когда я отвечаю на электронные письма поздно вечером, и не хочу, чтобы я выглядел как трудоголик. Тем не менее, по умолчанию это 5 вечера - если это до 5 вечера в настоящее время, это по умолчанию 5 вечера сегодня, и если это после 5 вечера в настоящее время, это по умолчанию завтра вечером в 5 вечера. Например, сейчас я нахожусь в 1:30 утра, а Outlook пытается доставить мои электронные письма завтра в 5 вечера:

Есть ли способ изменить время доставки по умолчанию? Предпочтительно, я хотел бы установить его примерно на 6:30 утра - таким образом, набирая электронное письмо в нерабочее время, легко запланировать его на завтрашнее утро (нажмите "Отложить доставку", а затем "ОК"), где теперь у меня есть чтобы открыть "Отложенная доставка", установите время, обычно также укажите дату, а затем нажмите "ОК".

Я не собираюсь задерживать электронные письма по умолчанию, я просто ищу способ изменить предположение, что Outlook заинтересован в том, чтобы доставлять мои электронные письма, как только люди возвращаются домой - я бы предпочел доставлять их в утро до их прибытия.

РЕШЕНИЕ: Благодаря указанию в ответе Акселя и коду, исходящему от Майка Хадсона, я написал макрос, который выполняет именно то, что я искал. Я прикрепил макрос к кнопке на панели быстрого доступа, и теперь это всего лишь один клик. Миссия выполнена - спасибо за помощь!

Вот ссылка на макрос Delay Send Mail, если вы хотите посмотреть самостоятельно (вы можете выполнить это пошаговое руководство, чтобы закрепить его на панели инструментов). Я открыт для любых отзывов или предложений по улучшению, которые есть у любого, но это огромная помощь для меня как есть.

1 ответ1

4

Вдохновленный Майком Хадсоном, я написал для вас следующий код VBA:

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

Подпрограмма вызывается всякий раз, когда вы отправляете почту. В выходные дни доставка задерживается до утра понедельника. Если время после "вечернего времени", доставка задерживается до следующего утра. Пожалуйста, сделайте некоторое тестирование, прежде чем использовать этот макрос!

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