【VBS】检索Outlook本地邮箱

实现功能:使用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

 

转载于:https://www.cnblogs.com/Ryukaka/p/4645902.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值