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

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

  • 数据同步

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

  • 来信提醒

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

  • 单点登录

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

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

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

         /// <summary>
/// POST时用到的几个数据
/// </summary>
public struct PostData
{
/// <summary>
/// 目标服务器地址
/// </summary>
public string url;
/// <summary>
/// 采用的编码
/// </summary>
public string encoding;
/// <summary>
/// POST的数据
/// </summary>
public string contentData;
/// <summary>
/// contentType
/// </summary>
public string contentType;
/// <summary>
/// 添加其他的Header
/// </summary>
public string header;
} /// <summary>
/// 申请腾讯企业邮箱时的管理员账户
/// </summary>
string client_id = "hhhhhhhhhhh.com";
/// <summary>
/// 腾讯企业邮箱分配的接口key
/// </summary>
string client_secret = "3ed4b10okd37f2e0f56f23a3b6e53013";
/// <summary>
/// 目标邮箱的账户,获取对应的未读邮件数
/// </summary>
string alias = "chen123@hhhhhhhhhhh.com"; /// <summary>
/// 按钮事件,调用腾讯API获取Token,然后获取未读邮件数
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bNewMailCount_Click(object sender, EventArgs e)
{
//第一步获取Token
PostData pdata = new PostData();
pdata.url = "https://tel.exmail.qq.com/cgi-bin/token";
pdata.contentData = "grant_type=client_credentials&client_id=" + client_id + "&client_secret=" + client_secret;
pdata.encoding = "UTF-8";
pdata.contentType = "application/x-www-form-urlencoded"; string responseString = "";
//获取token_type和access_token
LitJson.JsonData json = this.Post(pdata, out responseString); if (json != null)
{
//获取Token成功后,第二步,获取未读邮件数
pdata = new PostData();
pdata.url = "http://openapi.exmail.qq.com:12211/openapi/mail/newcount";
pdata.contentData = "alias=" + alias;
pdata.encoding = "UTF-8";
pdata.contentType = "application/x-www-form-urlencoded";
pdata.header = "Authorization: " + json["token_type"] + " " + json["access_token"]; responseString = "";
json = this.Post(pdata, out responseString); if (json != null)
{
responseString = "账户:" + json["Alias"] + " 未读邮件:" + json["NewCount"];
iHandler.TextBoxAppend(this.tResponse, responseString, true);
}
}
}
/// <summary>
/// POST,返回LitJson.JsonData对象
/// </summary>
/// <param name="pdata"></param>
/// <param name="responseString"></param>
/// <returns></returns>
private LitJson.JsonData Post(PostData pdata, out string responseString)
{
responseString = String.Empty;
try
{
Encoding encoding = Encoding.GetEncoding(pdata.encoding);
byte[] data = encoding.GetBytes(pdata.contentData);
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(pdata.url);
webReq.Method = "POST";
webReq.ContentLength = data.Length;
webReq.ContentType = pdata.contentType + "; charset=" + pdata.encoding;
if (!String.IsNullOrEmpty(pdata.header))
{
webReq.Headers.Add(pdata.header);
}
Stream webStream = webReq.GetRequestStream();
webStream.Write(data, , data.Length); WebResponse webResp = webReq.GetResponse();
Stream webRespStream = webResp.GetResponseStream();
StreamReader reader = new StreamReader(webRespStream, encoding);
string respXml = reader.ReadToEnd();
reader.Close(); reader.Dispose();
webResp.Close(); responseString = respXml;
return LitJson.JsonMapper.ToObject(respXml); ;
}
catch (Exception ex)
{
responseString = ex.ToString();
return null;
}
}

利用腾讯企业邮箱开放API获取账户未读邮件数初探的更多相关文章

  1. 腾讯企业邮箱又一次隐藏了qq邮件列表的入口

    今天登陆腾讯企业邮箱,发现腾讯企业邮箱又一次隐藏了qq邮件列表的入口,很不方便操作, 我们切换到工具箱选项,然后随便点击里面的一个工具,比如:企业网盘,然后看浏览器地址栏的地址如下:http://ex ...

  2. php通过imap获取腾讯企业邮箱信息后的解码处理

    最近需要在项目开发的oa中集成一个收发腾讯企业邮箱邮件的功能,今天做到了获取收件箱内容部分,imap如何获取就不写了,百度一堆,主要是关于内容的解码 主要以邮件主题解码为主,腾讯企业邮返回的数据主要有 ...

  3. discuz邮箱注册激活||腾讯企业邮箱免费注册及登录方法

    如何申请免费的企业邮箱,如果拥有了网站,还能有一个免费的域名邮箱,是不是很拉风呢?对于还没有注册企业的用户来说,优先使用企业邮箱,是非常好的事呢. 腾讯邮箱现在开放免费的企业邮箱注册,效果要比个人邮箱 ...

  4. 解析腾讯企业邮箱到自己域名,设置mail的cname

    之前注册了腾讯企业邮的免费邮箱,后来想把企业邮箱和域名绑定起来,发现了一些问题. 先来看正常的部分,假设你已经注册过了腾讯企业邮箱免费版,并且已经绑定好了域名. 然后在域名提供商那里设置域名解析的MX ...

  5. Java + 腾讯企业邮箱 + javamail + SSL 发送邮件

    说实话腾讯的企业邮箱真心不错! 腾讯企业邮箱官网:http://exmail.qq.com/login/ 新用户注册:http://exmail.qq.com/onlinesell/intro 点击开 ...

  6. ubuntu 14.04 下evolution邮箱客户端设置(腾讯企业邮箱)

    安装 evolution 有PPA可用,支持 Ubuntu 14.04 及衍生系统.打开终端,输入以下命令: sudo add-apt-repository ppa:fta/gnome3 sudo a ...

  7. MVC4/5+jquery+bootstrap样式+dataTables+linq+WCF+EF6后台和前台的框架集合!好蛋疼哦!数据库支持MYSQL 和MSSQL,oracle。集成腾讯企业邮箱收邮件同步用户SSO登陆等功能。

    花费了我好多心血,才做出来,下个项目准备用这个框架! 大家有没有做这方面的可以交流一下! 花费了我好多心血,才做出来,下个项目准备用这个框架! 大家有没有做这方面的可以交流一下! 花费了我好多心血,才 ...

  8. 微信时代,"邮"你选择 腾讯企业邮箱推新玩法

    近日,腾讯企业邮箱在广州.北京.南京三地举办<微信时代,“邮”你选择>企业邮箱新方向客户见面会,同时也正式宣布将打通微信.“拥抱”移动办公,领航国内办公工具移动之“变”. 据了解,腾讯企业 ...

  9. zabbix 3.4 ubuntu 16 用腾讯企业邮箱作为告警邮箱

    最近一直在研究zabbix监控系统,今天调试了腾讯企业邮箱作为告警邮箱的设置,本次方式是用内置email组件. 第一步: 选择Administration-->Media Types--> ...

随机推荐

  1. (转)C#中的泛型

    来源:http://www.cnblogs.com/JimmyZhang/archive/2008/12/17/1356727.html .Net 1.1版本最受诟病的一个缺陷就是没有提供对泛型的支持 ...

  2. 黑马程序员- IO(Input- Output)(一)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- API包: Java.io.* 缘来: java通过操作数据对象是通过流的方式来创建的 作用: ...

  3. python小爬虫【1】

    爬取百度贴吧的图片 分析贴吧源代码,图片所在位置是:<img class="BDE_Image" src=“........jpg” pic_ext..... 所以正则匹配是 ...

  4. mac下使用自带的apache与php

    启动apache 运行命令 sudo  apachectl -k start 启动apache 如果报 AH00526: Syntax error on line 20 of /private/etc ...

  5. 【转】Objective-C中的instancetype和id关键字

    原文:http://blog.csdn.net/wzzvictory/article/details/16994913 一.什么是instancetype instancetype是clang 3.5 ...

  6. C#获取数组的行和列数程序代码

    using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Cons ...

  7. Open judge 06月度开销

    06:月度开销 总时间限制: 1000ms 内存限制: 65536kB 传送门 描述 农夫约翰是一个精明的会计师.他意识到自己可能没有足够的钱来维持农场的运转了.他计算出并记录下了接下来 N (1 ≤ ...

  8. [Introduction to programming in Java 笔记] 1.3.9 Factoring integers 素因子分解

    素数 A prime is an integer greater than one whose only positive divisors are one and itself.整数的素因子分解是乘 ...

  9. Windows phone 之 UserControl的应用

    一.新建一个UserControl.xaml页面  MyUserControl.xaml 添加代码如下: <UserControl x:Class="bodypicture.MyUse ...

  10. js 组件的写法

    var Test1 = function(){ var name = ""; this.setName = function(username){ name = username; ...