Если вам нужно запретить себе отправлять определенные электронные письма в нерабочее время, вы можете использовать метод, показанный в этой статье. Это может позволить Outlook автоматически проверять, находится ли он в рабочее время, когда вы отправляете определенные электронные письма, и откладывать его до рабочего времени.
Иногда время, когда вы составляете и отправляете письмо, не входит в ваше рабочее время. В этом случае вы можете отложить отправку этого письма до следующего рабочего дня. Как правило, вы можете использовать встроенную функцию «Отложить доставку», чтобы отложить такие электронные письма. Однако при этом вы должны каждый раз указывать время доставки. Это слишком хлопотно. После этого мы предоставим вам фрагмент кода VBA, который может автоматически проверять, находится ли он в рабочем времени, когда вы отправляете определенное электронное письмо, и быстро откладывать его отправку до рабочего времени.
Быстрая отсрочка отправки определенных электронных писем до рабочего времени
- В самом начале запустите программу Outlook.
- Затем на появившемся главном экране Outlook вы можете нажать клавиши «Alt + F11».
- Далее вы успешно получите доступ к редактору Outlook VBA.
- После этого вам нужно найти и открыть проект «ThisOutlookSession».
- Затем скопируйте следующий код VBA в это окно проекта.
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
Dim objMail As MailItem
Dim NewSendTime As String
Dim bDelayMail As Boolean
Dim nPrompt As Integer
bDelayMail = True
If TypeOf Item Is MailItem Then
Set objMail = Item
'Work on specific emails only
'You can change the conditions as per your needs
If objMail.Recipients.Item(1).Address = "boss@datanumen.com" Then
Select Case Weekday(Date, vbMonday)
'Delay 2 days if today is Saturday
Case 6
NewSendTime = (Date + 2) & " 09:00:00"
'Delay 1 days if today is Saturday
Case 7
NewSendTime = (Date + 1) & " 09:00:00"
Case Else
If DatePart("h", Now) < 9 Then
'Delay to 9 o'clock if now is too early
NewSendTime = Date & " 09:00:00"
ElseIf DatePart("h", Now) > 18 Then
Select Case Weekday(Date, vbMonday)
'Delay 3 days if today is Friday and now is over 6 PM
Case 5
NewSendTime = (Date + 3) & " 09:00:00"
'Delay to 9 o'clock if now is before 6 PM
Case Else
NewSendTime = (Date + 1) & " 09:00:00"
End Select
Else
bDelayMail = False
End If
End Select
If bDelayMail = True And objMail.DeferredDeliveryTime = "1/1/4501" Then
'Ask if to delay sending this email
nPrompt = MsgBox("Outside Working Hours:" & vbCrLf & "Do you want to delay this email until " & NewSendTime & "?", vbYesNo + vbExclamation, "Delay Email")
If nPrompt = vbYes Then
objMail.DeferredDeliveryTime = NewSendTime
Else
objMail.DeferredDeliveryTime = "1/1/4501"
End If
End If
End If
End If
End Sub
- Позже вам потребуется присвоить цифровой сертификат этому адресу электронной почты.
- А затем измените настройки макроса Outlook, чтобы разрешить подписанные макросы.
- Отныне каждый раз, когда вы отправляете электронные письма, соответствующие предопределенным критериям, если это не рабочее время, вы будете получать приглашение, подобное следующему изображению:
- Если вы выберете «Да», Outlook запланирует его отправку до рабочего времени.
Спасение поврежденных файлов Outlook
Outlook заслужил много похвал благодаря своим бесчисленным функциям. Тем не менее, у него все еще есть смертельный недостаток. То есть Outlook подвержен ошибкам и повреждению. Следовательно, вы должны регулярно создавать резервные копии файлов Outlook. Это может уберечь вас от болезненной потери данных Outlook. Кроме того, вам лучше приобрести мощный инструмент для ремонта, такой как DataNumen Outlook Repair, Которые могут восстановить Outlook проблемы в течение нескольких секунд.
Об авторе:
Ширли Чжан — эксперт по восстановлению данных в DataNumen, Inc., которая является мировым лидером в области технологий восстановления данных, включая восстановление мдф и программные продукты для ремонта Outlook. Для получения дополнительной информации посетите www.datanumen.com


