admin管理员组文章数量:1559388
公司一直使用腾讯提供的免费企业邮箱服务,今天用管理员帐户登录后发现,原来现在腾讯的企业邮箱也开放了部分API
你可以通过开放接口实现以下功能:
数据同步
数据同步可以帮助你同步部门成员信息,你还可以创建、删除、修改帐号信息。
来信提醒
新邮件将即时在OA等办公系统提醒你。
单点登录
你可以从公司OA系统、网站一键进入企业邮箱,免去登录过程。
具体的功能可以自己登陆腾讯企业邮箱管理员界面,进入“工具箱--开放协议”中下载开放协议文档查看,有了这些API就能做不少事情了,可以尝试和公司内部的一些系统进行整合,相信会有意想不到的惊喜。
简单测试了一下未读邮件数这个能力,代码很简单,就不做说明了,由于API返回的数据是JSON格式,用到了LitJSON
1 /// <summary>
2 /// POST时用到的几个数据
3 /// </summary>
4 public struct PostData
5 {
6 /// <summary>
7 /// 目标服务器地址
8 /// </summary>
9 public string url;
10 /// <summary>
11 /// 采用的编码
12 /// </summary>
13 public string encoding;
14 /// <summary>
15 /// POST的数据
16 /// </summary>
17 public string contentData;
18 /// <summary>
19 /// contentType
20 /// </summary>
21 public string contentType;
22 /// <summary>
23 /// 添加其他的Header
24 /// </summary>
25 public string header;
26 }
27
28 /// <summary>
29 /// 申请腾讯企业邮箱时的管理员账户
30 /// </summary>
31 string client_id = "hhhhhhhhhhh";
32 /// <summary>
33 /// 腾讯企业邮箱分配的接口key
34 /// </summary>
35 string client_secret = "3ed4b10okd37f2e0f56f23a3b6e53013";
36 /// <summary>
37 /// 目标邮箱的账户,获取对应的未读邮件数
38 /// </summary>
39 string alias = "chen123@hhhhhhhhhhh";
40
41 /// <summary>
42 /// 按钮事件,调用腾讯API获取Token,然后获取未读邮件数
43 /// </summary>
44 /// <param name="sender"></param>
45 /// <param name="e"></param>
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 /// <summary>
80 /// POST,返回LitJson.JsonData对象
81 /// </summary>
82 /// <param name="pdata"></param>
83 /// <param name="responseString"></param>
84 /// <returns></returns>
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://m.elefans.com/xitong/1727422115a1113696.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论