VBA通过HTTP协议实现邮件轨迹跟踪查询

作者:iamlasong

1、接口说明

通过互联网访问,接口调用为HTTP请求的方式,每一次由用户发起的HTTP请求,需要设置验证信息,具体方法是,在HTTP Header部分增加version及authenticate属性,属性值在联调测试之前由总部提供。

接口调用地址:http:// IP:Port/invoke/path/{mail_num}

接口调用方式:HTTP GET方式,通过HTTP GET发起请求,使用真实邮件号替换{mail_num}

编码格式:UTF-8

接口返回数据格式:

{"traces":[{"acceptTime":"2011-11-2417:55:00","acceptAddress":"上海邮政速递物流长宁经营部","remark":"收寄"},{"acceptTime":"2011-11-2417:59:00","acceptAddress":"上海邮政速递物流长宁经营部","remark":"离开处理中心,发往上海市邮政公司邮政速递局"},{"acceptTime":"2011-11-2423:54:38","acceptAddress":"上海市","remark":"到达处理中心,来自上海邮政速递物流长宁经营部"},{"acceptTime":"2011-11-2500:17:42","acceptAddress":"上海市","remark":"离开处理中心,发往USSFOF"},{"acceptTime":"2011-12-0507:41:00","acceptAddress":"美国
94704","remark":"到达投递局"},{"acceptTime":"2011-12-0511:07:00","acceptAddress":"美国94703","remark":"妥投"}]}

acceptTime表示处理时间

acceptAddress表示处理地点

remark表示处理动作

2、查询界面

3、查询结果

4、程序实现

<pre name="code" class="vb">Dim tt, stime(80), saddr(80), state(80) As String

Public Sub get_data()
    '
    Dim HttpReq As Object
    Dim i, k, kk, row1 As Integer

    lineno = [A65536].End(xlUp).Row      '行数
    Range("B2:B" & lineno).ClearContents
    'lineno = ActiveSheet.UsedRange.Rows.Count
    Set HttpReq = CreateObject("MSXML2.XMLHTTP.3.0")

    row1 = 2
    maxrow = Sheets("查询结果").UsedRange.Rows.Count
    If maxrow >= 2 Then
        Sheets("查询结果").Range("A2:D" & maxrow).ClearContents
    End If
    For i = 2 To lineno
        mail = Cells(i, 1)
        If mail = "" Then Exit For
        '下面的<span style="font-family: Arial; ">IP:PORT要换成真实地址和端口</span>
        HttpReq.Open "Get", "http:// IP:Port/invoke/path/" & LTrim(mail), False
        '下面的验证属性参数pppppppp1,2换成真实的属性值
        HttpReq.setRequestHeader "Authenticate", "pppppppp1"
        HttpReq.setRequestHeader "Version", "pppppppp2"

        HttpReq.send
        'MsgBox HttpReq.getAllResponseHeaders
        'MsgBox HttpReq.responseText

        kk = get_trace(HttpReq.responseText)
        Cells(i, 2) = tt
        Sheets("查询结果").Cells(row1, 1) = mail
        For k = 1 To kk
            Sheets("查询结果").Cells(row1, 2) = stime(k)
            Sheets("查询结果").Cells(row1, 3) = saddr(k)
            Sheets("查询结果").Cells(row1, 4) = state(k)
            row1 = row1 + 1
        Next k
        If CInt((lineno - i) / 10) * 10 = lineno - i Then
            Application.StatusBar = "剩余邮件数:" & lineno - i
        End If

    Next i

    Sheets("查询结果").Activate
    msg = MsgBox("邮件批量查询完毕,共查询" & i - 3 & "个邮件!", vbOKOnly, "AHEMS:iamlaosong")

End Sub
'函数,从字符串中取出轨迹信息,返回条数
Function get_trace(mystring As String) As Integer
    Dim m1, m2, m3, m4, n, sn As Integer
    Dim buf As String

    buf = mystring
    sn = 1
    tt = "0"
    For n = 1 To 80
        m1 = InStr(sn, buf, "acceptTime", vbTextCompare)
        If m1 = 0 Then Exit For
        m2 = InStr(sn, buf, "acceptAddress", vbTextCompare)
        m3 = InStr(sn, buf, "remark", vbTextCompare)
        m4 = InStr(sn, buf, "}", vbTextCompare)
        stime(n) = Mid(buf, m1 + 13, 20)
        saddr(n) = Mid(buf, m2 + 16, m3 - m2 - 19)
        state(n) = Mid(buf, m3 + 9, m4 - m3 - 10)
        sn = m4 + 2
    Next n

    If state(n - 1) = "妥投" Then tt = "1"
    get_trace = n - 1
End Function

VBA通过HTTP协议实现邮件轨迹跟踪查询,布布扣,bubuko.com

时间: 2024-10-05 21:05:28

VBA通过HTTP协议实现邮件轨迹跟踪查询的相关文章

【VBA研究】VBA通过HTTP协议实现邮件轨迹跟踪查询

作者:iamlasong 1.接口说明 通过互联网訪问,运单跟踪信息查询接口基于HTTP协议开发,接口为RESTFul风格的Web Service,信息交互过程为用户按我方提供的web service地址进行调用,我方接到调用请求后,为用户返回JSON格式组织的数据信息.用户根据约定的接口规范对数据进行解析. 接口调用为HTTP请求的方式,每一次由用户发起的HTTP请求,须要设置验证信息,详细方法是,在HTTP Header部分添加version及authenticate属性,属性值在联调測试之

网络公有协议之邮件SMTP篇

1.写在开始之前 之前在工作中也是遇到过smtp协议,那个时候因为解决出现的bug比较急,所以并没有仔细去学习或者深入了解smtp相关知识,刚好最近工作又碰到相关问题,因为bug的奇怪,所以不得不放下手头的相关工作,好好研究了下smtp协议的相关流程和具体实施,所以记录下来和大家一起分享. 2.smtp理论基础知识 smpt(全称为 simple mail transfer protocol),中文的意思也就是简单的邮件传输协议,它是一组用于有源地址到目的地址传输邮件的规则,是由它来控制信件的中

Android+GPS轨迹跟踪器(一)

Android+GPS轨迹跟踪器-------今天的第一步:获取Key 使用高德地图,查看高德官方API:http://lbs.amap.com/ 使用Android studio做开发平台(我还纠结了QT,但是作为菜鸟看见Android有很多官方示例,我瞬间没脾气) 步骤:http://lbs.amap.com/api/android-sdk/guide/create-project/get-key 1.进入控制台,创建一个新应用(必须有账号) 2.在创建的应用上点击"添加新Key"

【Python3】POP3协议收邮件

初学Python3,做一个email的例子,虽然知道做的很渣渣,还是分享一下吧 POP3协议 POP3全称Post Official Protocol3,即邮局协议的第三个版本,它规定了怎样将个人计算机连接到Internet的邮件服务器和下载电子邮件的电子协议,它是因特网电子协议的第一个离线标准,POP3允许用户从服务器上将邮件存储到本地主机(个人计算机),同时删除保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的邮件服务器,用来接收电子邮件. Python3支持POP3的模块是p

使用 EWS(Exchange Web Service)协议读取邮件、发送邮件

问题: 公司之前可以通过POP3协议收发邮件,因而在SoapUI中用JavaMail可以读取邮件,后来配置了Office 365,POP3协议端口不再开放,邮件全部读取失败,报login timeout,需要改用EWS(Exchange Web Service)协议. 参考 : http://blog.csdn.net/yangcheng33/article/details/55049629 需要导入此JAR包 : ews-java-api-2.0.jar import java.net.URI

轨迹跟踪——二维轨迹跟踪

在读研期间,由于导师与水环研究生水生物有项目交叉,我主要研究视频跟踪技术.用来提取鱼类的轨迹以及鱼类的微动作.其中鱼类的轨迹提取我已做了两部分工作,二维视频跟踪,提取鱼类的轨迹:另一部分工作是重建三维鱼类游动轨迹.鱼类微特征提取还没有动工(惭愧). ---------- 二维的视频跟踪 在做这项工作之前我们花费了很大的力气去获取实验数据.购买了三个汉邦高科的摄像头,水箱,摄像头支架等.搭建好实验装置.(由于主要说视频跟踪,具体与鱼相关的就带过) 注意: 1.摄像头要固定住,这样拍摄的视频帧才有固

SQL Server扩展事件(Extended Events)-- 使用扩展事件跟踪查询语句

SQL Server扩展事件(Extended Events)-- 使用扩展事件跟踪查询语句 创建扩展事件会话 展开"Object Explorer"."Management"."Extended Events"."Sessions"目录,你会发现一到两个预设的会话.默认,在SQL Server 2012包含system_health会话,而根据不同的SQL Server2012的版本,可能有AlwaysOn_health会话

MIME协议在邮件中的应用详解

1.定义 全称是多用途互联网邮件扩展(MIME,Multipurpose Internet Mail Extensions),在MIME出台之前,使用RFC 822只能发送基本的ASCII码文本信息,邮件内容如果要包括二进制文件.声音和动画等,实现起来非常困难,最为麻烦的是多家邮件服务器商间邮件的互发,如果没有一种统一的格式定义,想要互发需要投入巨大的人力物力.MIME提供了一种可以在邮件中附加多种不同编码文件的方法,弥补了原来的信息格式的不足.实际上不仅仅是邮件编码,现在MIME经成为HTTP

C#基础--基于POP3协议的邮件接收和基于STMP的邮件发送

最近在用outlook同步邮件.对邮件协议有一点兴趣.于是就去收集了一些资料,学习了一下如何通过.net来实现邮件的收发.    一:SMTP协议  1.什么是SMTP协议:       SMTP目前已是事实上的在Internet传输E-Mail的标准,是一个相对简单的基于文本的协议.在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确定是存在的),然后消息文本就传输了.可以很简单地通过Telnet程序来测试一个SMTP服务器,SMTP使用TCP端口25.要为一个给定的域名决定一个SMT