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
九游会下载的版权声明:本文标题:利用腾讯企业邮箱开放api获取账户未读邮件数初探 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727422115a1113696.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论