Questão Outlook: Alterar o atraso de email padrão para o recurso "Não entregar antes"


No Outlook, há um recurso que me permite programar meus e-mails para uma 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 é 01h30 onde estou e o Outlook está tentando entregar meus e-mails às 17h de amanhã à noite:

enter image description here

Existe alguma maneira de alterar este tempo de entrega padrão? De preferência, gostaria de configurá-lo para algo como 6h30 - assim, digitando um e-mail depois do horário, é fácil programá-lo para amanhã de manhã (clique em "Atraso na entrega" e depois em "OK"), onde agora para abrir "Atrasar entrega", corrija a hora, geralmente corrija também a data e clique em OK.

Não estou querendo atrasar os e-mails por padrão, só estou procurando uma maneira de mudar a suposição de que o Outlook está interessado em entregar meus e-mails assim que as pessoas voltarem para casa - prefiro entregá-las no site manhã antes que eles cheguem.

RESOLUÇÃO: Graças à direção na resposta de Axel e código originalmente de Mike Hudson, Eu escrevi uma 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 preso à sua barra de ferramentas). Estou aberto a qualquer feedback ou sugestões de melhorias que alguém tenha, mas é uma grande ajuda para mim como está.


2


origem




Respostas:


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!


4



Hmm - embora eu necessariamente quisesse "enviar", pude ver isso em um botão da barra de ferramentas para ativar o envio atrasado e definir o horário para as 6h03 da manhã seguinte (para não suspeitar que estou atrasado ... envio!) - dessa forma, seria resolvido com um único clique. Não é tão bom quanto ser capaz de mudar o tempo padrão, mas definitivamente parece que vai funcionar. Vou testá-lo, fazer os ajustes necessários e depois postar de volta. Obrigado! - SqlRyan
Application_ItemSend é automaticamente chamado como "Event Handler" sempre que um email é enviado. Nenhum botão é necessário. - Axel Kemper
Eu quero a opção de tomar este comportamento, no entanto - e-mails devem enviar normalmente por padrão, mas eu queria fazer atrasar-los até amanhã de manhã um único clique, em vez de seis. Eu estou fazendo algumas pequenas mudanças e isso vai fazer isso, no entanto! Não tenho certeza de como não encontrei o exemplo de Mike ao procurar uma solução, mas entre seu código e suas modificações responde a todas as minhas perguntas. - SqlRyan