很多中国大陆用户反应 MobileMe 的邮件推送功能在破解了的 iPhone OS X 2.0 上无法使用。今早我和本站作者飞猪做了一些测试,报告如下。 开宗明义,本帖中的「推送成功」指的是当 @me.com 邮箱收到新邮件后,苹果的服务器会自动将邮件「推」到 iPhone 上,无需用户主动打开 MobileMail(iPhone 上的 Mail)收信——即便 iPhone 处于睡眠状态下,也能够发出提示音和振动(如同手动查信结束后的反应)。另外本帖只讨论邮件推送功能,不涉及日历与地址本推送。 飞猪早上问我邮件推送是不是真的工作正常,因为他认识的大陆用户里只有我说能用。于是我测试了四次: 第一次,从我自己的域名信箱发送到我的 @me.com 信箱,推送失败。 第二次,从我的 Gmail 发送到我的 @me.com 信箱,推送成功。 第三次,从我的 @apple4.us 信箱发送到我的 @me.com 信箱,推送成功。 第四次,从第一次的那个信箱发送到我的 @me.com 信箱,推送成功。 测试期间,飞猪在本站的 Twitter 账号上链了 Sam Johnston 的一篇文章,并根据文章提供的信息,推断他自己的邮件推送失败或许和公司的无线网络封了 aosnotify.mac.com:5223 端口有关。为了验证这点,他关掉了 iPhone 的 Wi-Fi 功能,改用 EDGE 网络,推送成功。 再接下来,我在上述的 Johnston 文章中读到了这样一句话:
This would explain not only why the libraries were curiously private (in that they are not exposed to developers) but also why IMAP IDLE support only works while Mail.app is open.我不知道 IMAP IDLE 是什么东西,查了维基百科,似乎和推送有关。我不确定上面这句话的意思是不是说,要使用邮件推送功能,必须打开电脑(Mac OS X)上的 Mail 邮件客户端软件。如果关掉 Mail,邮件推送功能就会罢工。 这听起来十分荒唐,不过我还是做了几回测试:把 Mail 关掉,打开 Gmail 的网页介面往我的 @me.com 信箱发信。我发的五封信里,只有两封被推到 iPhone 上了。其他三封都需要我自己进入 MobileMail 手动收取。 之后飞猪将这一信息转告给几个朋友,其中有几位一直没有推送成功的,打开 Mail 后便成功了。飞猪随后在本站的 Twitter 帐户上说:
(这不仅解释了为什么苹果把那些库弄得如此隐秘[意即对开发者隐秘],也解释了为什么 IMAP IDLE 功能只有在 Mail.app 开启时才管用。)
另一个解决方法:打开你 Mac 上的 Mail.app,那么你的 iPhone上的推邮就立刻开始工作了。此方法已得到多人验证通过。尽管我不怀疑这几人的验证结果,但必须指出这并不意味着 Mail 的开启与否真的和邮件推送功能有关。事实上之后我在出租车上进行了试验,请某公关公司的朋友用她的公司邮箱发信到我的 @me.com 邮箱,推送成功——Mail 全程关闭(我电脑在睡眠状态)。 个人猜测,MobileMe 目前的种种异常还是由于软件不成熟所致。这里的软件包括 MobileMe 服务器端的软件,也包括 iPhone OS X 2.0 本身。此外或许也和中国网络状态的不可预知性有关。 读者如有任何使用 MobileMe 邮件推送功能的经验、烦恼和疑惑,欢迎在留言里分享。