admin管理员组

文章数量:1559073

    公司一直使用腾讯提供的免费企业邮箱服务,今天用管理员帐户登录后发现,原来现在腾讯的企业邮箱也开放了部分api

你可以通过开放接口实现以下功能:

  • 数据同步

    数据同步可以帮助你同步部门成员信息,你还可以创建、删除、修改帐号信息。

  • 来信提醒

    新邮件将即时在oa等办公系统提醒你。

  • 单点登录

    你可以从公司oa系统、网站一键进入企业邮箱,免去登录过程。

    具体的功能可以自己登陆腾讯企业邮箱管理员界面,进入“工具箱--开放协议”中下载开放协议文档查看,有了这些api就能做不少事情了,可以尝试和公司内部的一些系统进行整合,相信会有意想不到的惊喜。

    简单测试了一下未读邮件数这个能力,代码很简单,就不做说明了,由于api返回的数据是json格式,用到了litjson

  1         /// 
  2         /// post时用到的几个数据
  3         /// 
  4         public struct postdata
  5         {
  6             /// 
  7             /// 目标服务器地址
  8             /// 
  9             public string url;
 10             /// 
 11             /// 采用的编码
 12             /// 
 13             public string encoding;
 14             /// 
 15             /// post的数据
 16             /// 
 17             public string contentdata;
 18             /// 
 19             /// contenttype
 20             /// 
 21             public string contenttype;
 22             /// 
 23             /// 添加其他的header
 24             /// 
 25             public string header;
 26         }
 27 
 28         /// 
 29         /// 申请腾讯企业邮箱时的管理员账户
 30         /// 
 31         string client_id = "hhhhhhhhhhh";
 32         /// 
 33         /// 腾讯企业邮箱分配的接口key
 34         /// 
 35         string client_secret = "3ed4b10okd37f2e0f56f23a3b6e53013";
 36         /// 
 37         /// 目标邮箱的账户,获取对应的未读邮件数
 38         /// 
 39         string alias = "chen123@hhhhhhhhhhh";
 40 
 41         /// 
 42         /// 按钮事件,调用腾讯api获取token,然后获取未读邮件数
 43         /// 
 44         /// 
 45         /// 
 46         private void bnewmailcount_click(object sender, eventargs e)
 47         {
 48             //第一步获取token
 49             postdata pdata = new postdata();
 50             pdata.url = "https://tel.exmail.qq/cgi-bin/token";
 51             pdata.contentdata = "grant_type=client_credentials&client_id="   client_id   "&client_secret="   client_secret;
 52             pdata.encoding = "utf-8";
 53             pdata.contenttype = "application/x-www-form-urlencoded";
 54 
 55             string responsestring = "";
 56             //获取token_type和access_token
 57             litjson.jsondata json = this.post(pdata, out responsestring);
 58 
 59             if (json != null)
 60             {
 61                 //获取token成功后,第二步,获取未读邮件数
 62                 pdata = new postdata();
 63                 pdata.url = "http://openapi.exmail.qq:12211/openapi/mail/newcount";
 64                 pdata.contentdata = "alias="   alias;
 65                 pdata.encoding = "utf-8";
 66                 pdata.contenttype = "application/x-www-form-urlencoded";
 67                 pdata.header = "authorization: "   json["token_type"]   " "   json["access_token"];
 68 
 69                 responsestring = "";
 70                 json = this.post(pdata, out responsestring);
 71 
 72                 if (json != null)
 73                 {
 74                     responsestring = "账户:"   json["alias"]   " 未读邮件:"   json["newcount"];
 75                     ihandler.textboxappend(this.tresponse, responsestring, true);
 76                 }
 77             }
 78         }
 79         /// 
 80         /// post,返回litjson.jsondata对象
 81         /// 
 82         /// 
 83         /// 
 84         /// 
 85         private litjson.jsondata post(postdata pdata, out string responsestring)
 86         {
 87             responsestring = string.empty;
 88             try
 89             {
 90                 encoding encoding = encoding.getencoding(pdata.encoding);
 91                 byte[] data = encoding.getbytes(pdata.contentdata);
 92                 httpwebrequest webreq = (httpwebrequest)webrequest.create(pdata.url);
 93                 webreq.method = "post";
 94                 webreq.contentlength = data.length;
 95                 webreq.contenttype = pdata.contenttype   "; charset="   pdata.encoding;
 96                 if (!string.isnullorempty(pdata.header))
 97                 {
 98                     webreq.headers.add(pdata.header);
 99                 }
100                 stream webstream = webreq.getrequeststream();
101                 webstream.write(data, 0, data.length);
102 
103                 webresponse webresp = webreq.getresponse();
104                 stream webrespstream = webresp.getresponsestream();
105                 streamreader reader = new streamreader(webrespstream, encoding);
106                 string respxml = reader.readtoend();
107                 reader.close(); reader.dispose();
108                 webresp.close();
109 
110                 responsestring = respxml;
111                 return litjson.jsonmapper.toobject(respxml); ;
112             }
113             catch (exception ex)
114             {
115                 responsestring = ex.tostring();
116                 return null;
117             }
118         }

 


更多专业前端知识,请上 【猿2048】www.mk2048

本文标签: 腾讯企业邮箱邮件