• Exchange编程学习实例1定期删除管理员邮件 vbs


    需要些一个从外部控制exchange邮件的程序。程序的目的是将管理员的邮件定期删除,保留一定时间的邮件再邮箱内。
    下面写一下我的编程学习过程和需要注意的问题。
    这个东西说实话我是从0开始学起,以前没有做过相应的exchange编程。
    1、账号纪录的获得:
    公司的邮件比较特殊,主域服务器在国内,而另外一个服务器在新加坡。2个服务器都有exchange服务器。用的是同一个域名。而管理员的账号在国外。
    开始我再本机作测试,返回错误信息,原因很快明白,必须要在exchange服务器上运行才能建立ExOLEDB.DataSource。
    于是开始将测试脚本放到国内的服务器上,错误信息为服务器上没有相应的账号。于是找另一个国内账号来测试,成功。
    下面开始取得账号内邮件的数目。cItems = Rs.RecordCount,成功
    当我是用纪录集作循环的时候,问题出现了:rs.movenext不能使用,错误报告为:bookmark is invalid.但是movefirst和movelast都能后适用。查找了相关的资料,明白是服务器是2000使用的ado版本比较低而且有bug需要升级。天呢!!!!这个我可不好办了!于是继续索索方案,功夫不负有心人,有帖告诉我可以使用rs.move 1,0来代替。ok成功!
    当我到新加坡的服务器上测试另外一个账号的时候,提示没有权限,于是将全县提高。成功!
    2、记录的查询
    取得第一个查询纪录的某个字段。失败。我是用了“select * from ........”,该换了具体字段的时候"SELECT ""urn:schemas:httpmail:datereceived"",""DAV:displayname"" FROM scope('shallow traversal of " & Chr(34) & sURL & Chr(34) & "') "才成功。不知道这个错误是否分析正确。
    查询时间的时候注意要使用cast
    注意时间的格式一定要正确,“1998-02-01T10:00“做好字符串的组合还有调整系统时间的格式。
    3、记录的删除
    使用rs.delete 1来做删除(后文又另一种方法)
    4、账号的地址
    2种格式
    sUrl="file://./backofficestorage/urserver.com.cn/MBX/administrator/Inbox"
    sUrl="
    http://server/exchange/administrator/inbox"
    5、删的比较爽,彻底的删除,不进回收站的!!!


    给出源代码供大家参考指正。

    sUrl="file://./backofficestorage/urserver.com.cn/MBX/administrator/Inbox"

    Dim sFolderUrl
    Dim sQuery

    mytime = DateAdd("ww", -1, Date)  ’ 保留一个星期

    mytime=mytime&"T00:00:00Z" ‘注意必须使用这种格式,里面有个T,调整一下系统的时间格式

    DateRng = " < CAST("""&mytime&""" as 'dateTime')" ‘注意使用cast转换


    Dim Conn
    Set Conn = CreateObject("ADODB.Connection")
    Conn.Provider = "ExOLEDB.DataSource"
    Conn.Open sUrl
    sQuery = "SELECT ""urn:schemas:httpmail:datereceived"",""DAV:displayname"" FROM scope('shallow traversal of " & Chr(34) & sURL & Chr(34) & "') "
    squery = squery & "WHERE ""urn:schemas:httpmail:datereceived"" " & DateRng

    Set Rs = CreateObject("ADODB.Recordset")

     Rs.Open sQuery, Conn

    cItems = Rs.RecordCount

    do while not rs.eof

    'wscript.echo Rs.fields("urn:schemas:httpmail:datereceived").value & Rs.fields("DAV:displayname").value

    rs.Delete 1
    rs.movenext

    loop

    参考:
    http://mint.cnblogs.com/articles/396402.html
    http://mint.cnblogs.com/articles/396397.html

  • 相关阅读:
    .NET MVC后台发送post请求
    (整理)Sublime Text 3 安装、破解、安装Package Control、汉化、添加到右键菜单、代码格式化、禁止更新
    百度api查询多个地址的经纬度的问题
    try{}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会 不会被执行,什么时候被执行,在 return 前还是后?
    js获取某个日期所在周周一的日期
    重学C++ (1)
    基于.NET平台常用的框架整理
    指针常量和常量指针的区别
    C++四种强制类型转换关键字
    const define 定义常量的区别
  • 原文地址:https://www.cnblogs.com/Mint/p/398493.html
Copyright © 2020-2023  润新知