为什么不能一旦有邮件就通知手机,手机就运行邮件软件然后连接数据连接然后收取,收取完毕后断开连接呢?这样不就完美了吗?
这个想法非常好,但问题在于
服务器端如何通知手机呢?手机用的是GSM网络,邮件系统使用的是TCP/IP协议。两者之间是无法直接沟通的,在邮件系统里定义客户端的方式是账号/客户端IP,服务器根据客户端登录的IP来查找客户端然后建立连接把邮件传过去,这是一个很标准也很普通的的第三层网络应用,而GSM网络里的手机在没有连接。
GPRS/CDMA1x之前是没有IP的,它只存在于GSM网络里,只有运营商才可以通过你的手机号码在千千万万的终端里准确的找到你的手机。“号码”和“IP”这两种不同的“语言”是没法对话的,只有当手机连接了数据网络,它就获得了一个IP地址,来到了和邮件系统一样的世界。两者才可以互相直接沟通。而手机则必须在得知邮件系统有了新邮件后才能去发起数据连接,这就形成了一个悖论:先有鸡还是先有蛋?
这个问题解决的办法其实也很简单,只要运营商的支持就可以。大致原理就是当新的邮件到来的时候,邮件服务器发给运营商一个通知,然后运营商通过和这个邮件地址绑定的手机号码来寻找到你的手机,这个过程就相当于运营商在自己的系统里把邮件账号和手机号进行了一次翻译以达到对话的目的。找到你的手机后运营商通过一种特殊的短信把邮件系统的信息下发给你。手机收到这种短信后就会按照预先的设定启动相应的邮件软件连接上数据网络收取邮件,完毕后再断开连接。这样就达到了既省电又可以实时接受邮件的目的。
其实这种应用早在黑莓进入中国之前中国移动和中国联通都有了类似的服务:如中国移动的彩信。它本质上也可以看成一种pushmail,只不过它的邮件地址是手机号码,而且不能和普通的互联网邮件系统互发。因为它是没有形如
xxx@xxx.com这样的邮件地址。
移动下发的短信里提供的是彩信的URL并不是邮件通知,本质上还是基于push的wap,但是它的确是实现了真正的"push"。而中国联通的彩e则实现的更彻底,它给每个133用户都可以提供一个
133xxxxxxxx@cumail.com.cn的邮箱,只要有邮件发给这个邮箱,该用户的手机就会立刻收到一条短信通知你有新邮件,然后立刻自动打开手机上的彩e邮件系统收取邮件。收取完毕后自动断开1x数据连接,极其方便。用户也可以使用手机上的客户端给任意的邮箱地址发送Email,这个可以说是彻底的实现了pushmail,但是也有局限性是联通并没有开放这个接口。用户只能选择使用联通自己的cumail.com.cn邮箱,不过这个问题也好解决,用户可以在自己的其他邮箱系统里设置转发,一旦外出就把所有邮件转发到这个邮箱就可以实现彻底的邮件随身了。
09年9月,google推出了Google Sync Direct Push 手机收发Gmail的pushmail服务,使得广大个人用户也能通过gmail在手机终端上收发email。以下是介绍:
Google Sync同步服务,采用微软Exchange Server搭建,为手机提供在线同步服务,近日官方宣布对Google Sync进行了升级,新增对iPhone, iPod Touch和Windows Mobile手机的邮件推送支持。
因为是采用了Microsoft Exchange服务搭建的,所以采用Microsoft Direct Push就可以将邮件推送至手机,基本上可以做到邮件发送完成后几秒之内就能收到邮件,此次升级后可以对联系人、日历、Gmail邮件、任务和短信进行在线同步。