Outlook: altere o atraso de e-mail padrão para o recurso "Não entregar antes"

2

No Outlook, há um recurso que me permite programar meus e-mails para entrega posterior - adoro quando estou respondendo a e-mails tarde da noite e não quero parecer um viciado em trabalho. No entanto, o padrão é 5PM - se é antes das 5PM atualmente, o padrão é 5PM hoje, e se for depois das 5PM atualmente, o padrão será amanhã à noite às 17:00. Por exemplo, é atualmente 01:30 onde estou e o Outlook está tentando entregar meus e-mails às 17h de amanhã à noite:

Existealgumamaneiradealteraressetempodeentregapadrão?Depreferência,gostariadeconfigurá-loparaalgocomo6h30-assim,digitandoume-maildepoisdohorário,éfácilprogramá-loparaamanhãdemanhã(cliqueem"Atraso na entrega" e depois em "OK"), onde agora para abrir "Atraso na entrega", corrija a hora, geralmente corrija a data e clique em OK.

Não pretendo atrasar os e-mails por padrão. Estou apenas procurando uma maneira de alterar a suposição de que o Outlook está interessado em entregar meus e-mails assim que as pessoas voltarem para casa. Prefiro entregar -los de manhã antes de chegarem.

RESOLUÇÃO: Graças à direção na resposta de Axel e código originalmente de Mike Hudson, eu escrevi um macro que realiza exatamente o que eu estava procurando fazer. Eu fixei a macro em um botão na minha Barra de Ferramentas de Acesso Rápido e agora é apenas um único clique. Missão cumprida - obrigado pela ajuda!

Aqui está um link para a macro Delay Send Mail se você quiser dar uma olhada (você pode siga este passo a passo para obtê-lo na sua barra de ferramentas) . Estou aberto a qualquer feedback ou sugestões de aprimoramentos que alguém tenha, mas é uma grande ajuda para mim como é.

    
por SqlRyan 07.08.2013 / 10:33

1 resposta

4

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!

    
por 07.08.2013 / 11:34