答案1
在我使用 Outlook(我自己的加上 Exchange)的这些年里,我还没有看到任何可以自动实现该功能的快捷方式。
您可以做的(我已经这样做了)是关闭自动发送/接收。即使是计划发送/接收也无法实现此功能,因为发送/接收间隔不规律(即不是每半小时或每小时等)。
因此,请关闭“自动发送/接收”,然后撰写并发送您的电子邮件。它们将全部保存在发件箱中。
每天早上发送/接收来收集您的电子邮件,晚上发件箱中的电子邮件就会发出去。
在没有您正在寻找的快捷方式的情况下,这似乎可以满足您的需求。此方法适用于任何最新版本的 Outlook,并且很可能适用于未来版本,因为它基于标准 Outlook 方法。
答案2
答案3
VBA 中的解决方案可能如下所示:
'
' Automatically send emails at the beginning of the work week if sent on the weekend.
'
' This method is triggered by Outlook before sending and allows to cancel the send.
'
' Messages with highPriority are still send.
'
' Inspired from: https://www.mikesel.info/delay-outlook-mail-sending/
'
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo ErrHand 'Error Handling
Dim nxtMonday As String 'Variable containing next Monday's date
Dim objMailItem As MailItem 'Object to hold mail item
' Caution: This is also called in case of appointments/meeting requests
If TypeOf Item Is Outlook.MailItem Then
Set objMailItem = Item 'Set object to mail item just sent
' Always send important messages
If objMailItem.Importance = olImportanceHigh Then
Exit Sub
End If
If Weekday(Date, vbMonday) = 6 Then 'Check to see if todays weekday value is 6 (http://msdn.microsoft.com/en-us/library/82yfs2zh(v=vs.80).aspx)
nxtMonday = Date + (2) 'As today is saturday, Monday is today + 2 days
objMailItem.DeferredDeliveryTime = nxtMonday & " 08:00:00" 'Set delayed delivery time to today + 2 days
End If
If Weekday(Date, vbMonday) = 7 Then 'Check to see if todays weekday value is 7 / sunday
nxtMonday = Date + (1) 'As today is Sunday, Monday is today + 1 day
objMailItem.DeferredDeliveryTime = nxtMonday & " 08:00:00" 'Set delayed delivery time to today + 1 day
End If
End If
Exit Sub
ErrHand:
MsgBox ("An error has occured on line " & Erl & ", with a description: " & Err.Description & ", and an error number " & _
Err.Number)
End Sub