Вот что я сделал:
Sub MyRule(Item As Outlook.MailItem)
MsgBox "Mail one has arrived: " & Item.Subject
Dim newMail As Outlook.MailItem
Set newMail = Outlook.CreateItem(olMailItem)
newMail.To = Item.To
newMail.Subject = "!!!Start looking for issues!!!!"
newMail.Body = "Something might have gone wrong with the process.. You did not receive any closing mail for " + Item.Subject + " received on " + Item.ReceivedTime
newMail.DeferredDeliveryTime = DateAdd("h", 3.5, Now)
newMail.Send
End Sub
Это письмо хранится в вашей папке исходящих сообщений в течение 3,5 часов, а затем отправляется.
Это работает, только если вы работаете с Outlook примерно через 3,5 часа после первой почты.До тех пор, пока вы пытаетесь закрыть outlook, он скажет, что в папке исходящих сообщений есть элементы, которые не отправлены.Вы можете спокойно проигнорировать это предупреждение, но убедитесь, что у вас запущен Outlook.
(часть кода была написана и протестирована в Outlook. Но текст и тему я набрал за пределами редактора VB.возможно, придется устранить незначительные ошибки.)
РЕДАКТИРОВАТЬ :: для бонусных баллов ..
Sub MyRuleForMessageTwo(Item As Outlook.MailItem)
Dim myitem As Outlook.MailItem
Set OutboxItems = Application.Session.GetDefaultFolder(olFolderOutbox).Items
Set myitem = OutboxItems.GetFirst
Do While Not (myitem Is Nothing)
If myitem.Subject = "!!!Start looking for issues!!!!" Then
myitem.Delete
Exit Do
End If
Set myitem = OutboxItems.GetNext
Loop
End Sub
Вы можете поиграть с критериями соответствия, если вы ожидаете, что больше, чемодно сообщение будет находиться в вашем почтовом ящике, и вы хотите удалить только одно.