利用腾讯企业邮箱开放API获取账户未读邮件数初探
公司一直使用腾讯提供的免费企业邮箱服务,今天用管理员帐户登录后发现,原来现在腾讯的企业邮箱也开放了部分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获取账户未读邮件数初探的更多相关文章
- 腾讯企业邮箱又一次隐藏了qq邮件列表的入口
今天登陆腾讯企业邮箱,发现腾讯企业邮箱又一次隐藏了qq邮件列表的入口,很不方便操作, 我们切换到工具箱选项,然后随便点击里面的一个工具,比如:企业网盘,然后看浏览器地址栏的地址如下:http://ex ...
- php通过imap获取腾讯企业邮箱信息后的解码处理
最近需要在项目开发的oa中集成一个收发腾讯企业邮箱邮件的功能,今天做到了获取收件箱内容部分,imap如何获取就不写了,百度一堆,主要是关于内容的解码 主要以邮件主题解码为主,腾讯企业邮返回的数据主要有 ...
- discuz邮箱注册激活||腾讯企业邮箱免费注册及登录方法
如何申请免费的企业邮箱,如果拥有了网站,还能有一个免费的域名邮箱,是不是很拉风呢?对于还没有注册企业的用户来说,优先使用企业邮箱,是非常好的事呢. 腾讯邮箱现在开放免费的企业邮箱注册,效果要比个人邮箱 ...
- 解析腾讯企业邮箱到自己域名,设置mail的cname
之前注册了腾讯企业邮的免费邮箱,后来想把企业邮箱和域名绑定起来,发现了一些问题. 先来看正常的部分,假设你已经注册过了腾讯企业邮箱免费版,并且已经绑定好了域名. 然后在域名提供商那里设置域名解析的MX ...
- Java + 腾讯企业邮箱 + javamail + SSL 发送邮件
说实话腾讯的企业邮箱真心不错! 腾讯企业邮箱官网:http://exmail.qq.com/login/ 新用户注册:http://exmail.qq.com/onlinesell/intro 点击开 ...
- ubuntu 14.04 下evolution邮箱客户端设置(腾讯企业邮箱)
安装 evolution 有PPA可用,支持 Ubuntu 14.04 及衍生系统.打开终端,输入以下命令: sudo add-apt-repository ppa:fta/gnome3 sudo a ...
- MVC4/5+jquery+bootstrap样式+dataTables+linq+WCF+EF6后台和前台的框架集合!好蛋疼哦!数据库支持MYSQL 和MSSQL,oracle。集成腾讯企业邮箱收邮件同步用户SSO登陆等功能。
花费了我好多心血,才做出来,下个项目准备用这个框架! 大家有没有做这方面的可以交流一下! 花费了我好多心血,才做出来,下个项目准备用这个框架! 大家有没有做这方面的可以交流一下! 花费了我好多心血,才 ...
- 微信时代,"邮"你选择 腾讯企业邮箱推新玩法
近日,腾讯企业邮箱在广州.北京.南京三地举办<微信时代,“邮”你选择>企业邮箱新方向客户见面会,同时也正式宣布将打通微信.“拥抱”移动办公,领航国内办公工具移动之“变”. 据了解,腾讯企业 ...
- zabbix 3.4 ubuntu 16 用腾讯企业邮箱作为告警邮箱
最近一直在研究zabbix监控系统,今天调试了腾讯企业邮箱作为告警邮箱的设置,本次方式是用内置email组件. 第一步: 选择Administration-->Media Types--> ...
随机推荐
- java命名规则
java变量命名是不能以#开头的.Java变量的命名规则如下:$ .字母.下划线开头都行,不能以数字开头 后面的可以是数字.字母.下划线, 其他的命名方式,都会报错,且不能运行. 以字母.下划线( _ ...
- css 导航条 布局
导航条(简单易用的导航) <!DOCTYPE html> <html> <head> <style> ul { list-style-type:none ...
- plsql中文乱码问题(显示问号)
问题:打开plsql,执行sql语句,中文显示乱码: 解决方案: 输入sql语句select userenv('language') from dual查看数据库字符集 输入sql语句select * ...
- sql server split函数
--创建分割函数CREATE FUNCTION dbo.Split(@String varchar(8000),@Delimiter char(1))returns @temptable TABLE ...
- Object-C — KVC
1:使用kvc存取对象属性 如果要更改对象属性可以通过什么方法达到呢? (1)通过setter和getter方法. (2)属性. (3)直接设置实例变量. 今天学习新的一种方法:键值编码-kvc.通过 ...
- jQuery AJAX load() 方法
jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. 语法: $(selector). ...
- 选择排序(C++)
选择排序(C++) 选择排序: 选择排序(Selection sort)是一种简单直观的排序算法.它的工作原理是每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,直到全部待 ...
- cocos2d-x Android 环境搭建问题汇总
初次接触Cocos2d-x,准备搭建一个hello world的Android环境,问题遇到很多.在此记录,为自己,也为大家,避免重走弯路! 具体的环境搭建,可以参考官方的文档.在Windows7平台 ...
- DOM 之 document 查找元素方法
DOM 之 document 查找元素方法 getElementById("idName"); // 始终取得第一个 idName 的元素 getElementsByTagName ...
- SQL的四种语言和数据库范式
1. SQL的四种语言 DDL(Data Definition Language)数据库定义语言 CREATE ALTER DROP TRUNCATE COMMENT RENAME DML(Data ...