检查是否收到了电子邮件

时间:2014-05-30 08:56:40

标签: vba email outlook outlook-vba

我每个工作日收到两次电子邮件报告。有时发送这些报告的计算机崩溃并且没有发送电子邮件。我想要做的是使用一些Outlook VBA来检查电子邮件是否在12:15和17:05到达。

找到一封相当容易的电子邮件,但找到一个不存在的电子邮件让我有点头疼。我现在有一个类模块设置(我假设这将是要走的路)并且如果没有收到电子邮件的话,我会想要做的代码,但无法弄清楚如何检查电子邮件那些时候。它可能很简单,但之前没有真正在Outlook VBA中编写脚本,所以我不知道从哪里开始。

1 个答案:

答案 0 :(得分:1)

评论中指出的方法。

Outlook VBA - Run a code every half an hour

Outlook VBA - Run a code every half an hour with outlook 2010 64 bits

一种可能更简单的替代方案。使用提醒设置定期任务。

在ThisOutlookSession

Private Sub Application_Reminder(ByVal Item As Object)

If Item.Class = olTask Then
    If InStr(Item.Subject, "subject") > 0 Then
        ReminderUnreceivedMail
    End If
End If

End Sub

Sub ReminderUnreceivedMail()

Dim Itms As Items
Dim srchSender As String
Dim srchSubject As String

Set Itms = GetNamespace("MAPI").GetDefaultFolder(olFolderInbox).Items
srchSender = "sender"
srchSubject = "subject"

Set Itms = Itms.Restrict("[SenderName] = 'sender' And [Subject] = 'subject' And [SentOn] > '" & Format(Date, "yyyy-mm-dd") & "'")

If Itms.count = 0 Then
    MsgBox "No " & srchSubject & " email on " & Format(Date, "yyyy-mm-dd")
End If

Set Itms = Nothing

End Sub