Ryukaka

【VBS】检索Outlook本地邮箱

2015-07-14 16:50  JiaJia.Oct  阅读(569)  评论(0编辑  收藏  举报

实现功能:使用VBS检索Outlook本地邮箱中,今天是否收到某标题的邮件。

代码如下:

Const C_DATE_FORMAT_MAIL_FILTER_FROM = 1        \' yyyy-m-d 0:00 AM
Const C_DATE_FORMAT_MAIL_FILTER_TO = 2          \' yyyy-m-d 11:59 PM

Function CheckMail(pMailFolder, pMailTitle)
    On Error Resume Next
    Dim objOlApp
    Dim objNameSpace
    Dim objFolder
    Dim strFilter

    CheckMail = False
    Set objOlApp = CreateObject("Outlook.Application")
    Set objNameSpace = objOlApp.GetNamespace("MAPI")
    \'olFolderInbox  6  默认收件箱
    Set objFolder = objNameSpace.GetDefaultFolder(6).Folders(pMailFolder)

    If Err.Number <> 0 Then
        AddLog ("邮件访问出错:" & Err.Description)
        WScript.Quit -1
    End If

    \'过滤条件
    strFilter = "[Subject] = \'" & pMailTitle _
        & "\' And [ReceivedTime] >= \'" & FormatDate(Now(), C_DATE_FORMAT_MAIL_FILTER_FROM) _
        & "\' And [ReceivedTime] <= \'" & FormatDate(Now(), C_DATE_FORMAT_MAIL_FILTER_TO) & "\'"

    \'检索
    If objFolder.Items.Restrict(strFilter).Count > 0 Then
        CheckMail = True
    End If
End Function

\'日期格式化
Function FormatDate(pDate, pFlag)
    Dim y, m, d
    FormatDate = ""
    If IsDate(pDate) = False Then Exit Function
    y = cstr(year(pDate))
    m = cstr(month(pDate))
    d = cstr(day(pDate))

    Select Case pFlag
        Case C_DATE_FORMAT_MAIL_FILTER_FROM
            \' yyyy-m-d 0:00 AM From
            FormatDate = y & "-" & m & "-" & d & " 0:00 AM"
        Case C_DATE_FORMAT_MAIL_FILTER_TO
            \' yyyy-m-d 11:59 PM To
            FormatDate = y & "-" & m & "-" & d & " 11:59 PM"
    End Select
End Function

 

分类:

技术点:

相关文章:

  • 2021-11-27
  • 2021-12-16
  • 2022-02-09
  • 2022-12-23
  • 2022-01-08
  • 2021-12-10
  • 2021-12-11
  • 2021-07-05
猜你喜欢
  • 2022-12-23
  • 2021-11-17
  • 2021-11-13
  • 2021-07-16
  • 2021-06-12
  • 2021-12-18
  • 2021-11-22
相关资源
相似解决方案