折腾了一番邮件

这些天因为对于将来换到 Android 平台的担忧,折腾了一些事情。主要是因为国内的网络环境,再加上 Google 本身的策略也不让我觉得亲近,所以我在过去的几年里,渐渐的远离了 Google 平台,其中就包括 email。我先是换到了 QQ 邮箱,然后又转移到了收费的 Fastmail 里。过去没有工作,我觉得花钱注册个邮箱简直有病,可现在能让我绑定自己的域名,功能还能达到要求的邮箱服务真不多了。Fastmail 的价格我还能接受。

我这次的想法是重新用回 Google 的邮箱,原因之一也是我从 YouTube 上看到了 G Suite,然后上网页上看了看,之后萌生了这个想法。我在 Google Apps 还免费的时候注册了,绑定了自己的域名。现在已经没有免费注册这一说了,不过之前注册的还能用。这些年来,虽然我已经不再用 Google 的邮箱,但我还保留着之前注册的 Google Apps 账号,用这个不存在的邮箱账号来当作我的 Google 服务的账号。切换回 Gmail 也挺简单,去 DNSPod 里修改一下 MX 记录就可以了。我看了下,不选择升级 G Suite 似乎一些功能没法配置,比如 DKIM。

之前我的 Google 邮箱里有一些邮件,多数是之前新闻组收到的。这次我也不转移了,调整了一下 tag,然后尝试在我的 Linux 环境里配置。Mac 环境里很方便,Spark 配置很简单,甚至苹果官方的 Mail 也能很好的用。

通过调查,我发现 Gmail 的 tag 在 IMAP 里体现的是 INBOX.xxx 形式的邮箱。但我发现我用 OfflineIMAP 下载下来的邮箱目录全是乱码,似乎是经过某种编码方式编码之后的形式。我心想这么明显的问题,为什么网上没有一篇文章说这个事儿呢?结果发现,当我把 Gmail 的界面语言设成中文后,这些邮箱实际上就是中文,在 IMAP 获取邮件的时候,经过了 UTF-7 转码,之后就成了这个样子。我从网上找到一篇文章,添加一个 Python 脚本,然后获取的邮件目录就正常了。但在本地修改后同步到服务器改怎么写,我就不大确定了。我找到了这些代码和实际目录的对应关系,心想要不用 nametrans 来在同步的时候进行转换,后来心想这样其实不保险,我的界面语言如果再切换了呢?最后我干脆把语言换成了英文,这样就不会发生编码问题了。这个真是坑。

然后我对之前的 tag 设定进行了调整,整合了一些规则,然后在 OfflineIMAP 里加上了几个 nametrans 规则,把 INBOX 之类的去掉,用 mutt 来读取很不错。Postfix 也挺奇怪,我之前似乎调整了配置,把里面的 SMTP 设置给弄没了,配置目录里的每个文件我都看了下,通篇找不到 relay 设定,但邮件还能照发不误,实在是奇怪。这次,我按照过去的方法,简单的配置了一下,就没问题了。

有一个问题我无法解决,就是在收件箱里的邮件,我读完后对它进行归档操作,去了 Archive 后邮件就成了未读,这个我弄到最后也没有解决。

我这么用了几天,尝试了当前版本的 Gmail 和 Inbox 这两个 iOS 应用程序,最后还是只留下了 Gmail。不过几天后我心想还是算了吧,这个东西实在也没有多少意思。首先我的 Fastmail 还没有到期,它似乎也更新了方案,我之前的那一档方案没有了,新方案涨了一刀的样子,但目前的订购还没有到期。另一个就是 Linux 下归档邮件的问题,也造成了一定的困扰。第三点是现在 Google Apps 虽然还可以用,但不大保险,DKIM 一类的功能,不升级到 G Suite 也没发用。第四点,我不介意花钱升级,但 Google 的服务能否长期有效,让人不大肯定。第五点,在国内毕竟不敢保证 100% 的稳定。

然后我又回过头来看 Fastmail,不愧是专门做邮箱的,就是有诚意。DKIM 一类的功能一应俱全,过去我不大会在 DNSPod 里配置,通过提交工单,现在配置好了 DKIM、SPF,感觉其实不错。而且 Fastmail 不只有邮箱,还有日历、通讯录、文件服务器等功能有待挖掘,我想多运用一下也不错。另外,这次配置,我打开了两步验证,配置新的 IMAP、SMTP 服务器也成功了,本地邮箱目录也不会都带着 INBOX 前缀了。上次我折腾 Funtoo的时候,误把 Fastmail 服务器上的邮件清空了,这次找了一下,竟然发现了恢复的功能,可以恢复七天以内删除的邮件。我算了算时间,差不多刚好七天了,抱着试试的想法,没想到一会儿之后,4000 多封邮件都回来了,简直是意外之喜。我按照之前整理 Gmail tag 的思想,也重新整理了一下 Fastmail 的目录,感觉更好用了。目前,Fastmail 让我用着很满意。

iMac 和 MacBook 上的 Spark 让我给删除了,因为苹果的 Mail 就有足够的功能。手机上还不行,邮件 app 对 Gmail 以外的邮箱不提供归档功能,Spark 还是继续用着。

Email 的没落

这几天因为一些事情,对这个问题很有感触。

糟烂的邮件服务器

之前我在《移动办公尝试》一文中写到,我转而使用 iPad Pro 来完成我每日的工作,其中最重要的一项是登陆自己的 VPS 来接收从公司内网电脑发送的邮件,然后处理数据,获得结果。有的时候需要再向公司内部电脑传递文件,这一步就出了问题。

我们公司的邮件服务器,配置的向外发送没有问题,我从 Outlook 里发送后几秒钟,我就能在自己的设备上收到邮件,但接收部分实在垃圾。我经常收到服务器的退信,这一点弄的我没有脾气。最后我不得不折衷的先发给自己,再用自己的邮箱尝试转发,这样也常常失败,解决方式是在自己的设备的浏览器上登录公司的邮箱系统(好在外网能登录),自己发给自己,再从公司的内网电脑接收。这一点让我简直太苦恼了。

之所以发出这样的感叹,是我昨天晚上开始读《追随智慧——中国人在微软》这本书。这本书我在上初中的时候就买过一本来读,当时很年轻,很多东西都不了解,只是觉得李开复好牛逼、微软公司好牛逼之类的,后来搬家几次,这本书找不到了,前一阵子我从当当网上买书,想起了它,就又买了一本,放到现在才开始读。

我昨天晚上读完了第一章节,里面提到的一件事,就是微软公司的电子邮件管理方式。里面举例,说初创的微软中国研究院要给各个会议室起名字,李开复给助理发了一封电子邮件,助理把它加上自己的要求,转发给了所有人员,每个人通过电子邮件讨论。小时候读的时候,接触的也少,只是感觉很神往。现在我有自己的计算机,有自己的邮箱,邮件列表也关注过几个,更重要的是,我在中国的职场里也历练了几年,所以对这一切就有更深刻的体会。

我一直都很期待着用电子邮件来办公。过去看到比尔盖茨每天处理几十封上百封电子邮件,心里觉得很羡慕。记得有一篇文章就描写了比尔盖茨的办公室,说他用几台电脑来处理各种事物,还配了一张他拿着一台平板电脑的照片。我从那个时候就很期待着自己也可以这样工作,可当我有了电子邮箱,每天收到最多的邮件都是垃圾邮件,想通过它来办些正事,结果身边的人已经没有用它了。

在私人事务上,它被 QQ、微信这样的即时通讯工具代替了;在公司,替代品则是 OA 系统。我刚入职的时候,把 OA 系统看得很神秘,当我渐渐熟悉了之后,公司进行了 OA 换版,我从第一时间就接触了试运行的 OA 系统,现在对它的使用也很清楚了,真正的有了一些吐槽的话。OA 系统有很多模块,可日常几乎是唯一使用的是阅件,其次是有的处室会用到发文功能,其余的基本上都是摆设,比如会议室申请,最后还得是纸质申请书。另外,领导基本上是不用 OA 的,需要发正式文,需要打印下来,手写发文稿纸,同时在 OA 里填写并发起流程,但是到了总经理、副总经理一级,你要去他的办公室请领导签字,OA 里的流程有办公室的文书帮领导处理。还有,给处长、部门主任一级以上的领导发阅件后,一定要去找领导口头说明一下,这也是潜规则。

在《追随智慧》里,电子邮件管理背后的核心思想是公司的扁平化管理,以及人人平等的关系。里面有小标题,“点子最值钱、架子最不值钱”,是这一理念的精确描述。我想在我们的公司里,哪怕是日常使用电子邮件,估计也是另一番场景吧。

真实的推诿

今天上午发生了一件事情,让我深有感触,也算是开了眼。

近期省一级的公司和国家一级的公司要抓下级单位不规范经营的情况,有一个行业监管平台,设定了一些预警规则,发生了符合规则的订单,就会亮红灯,我们就会有麻烦。为了应对,我们公司在春节前决定开发一些系统模块,在当天的订单中进行筛查,将会触发预警的订单输出,让营销部门去处理。今天我们处长请来了信息中心的负责人和技术人员,计划部门的工程师,一起讨论开发这些模块的可行性。我本来觉得这样应该是挺简单的一项任务,结果却让我大跌眼镜。

计划处的工程师参与了省局监管平台的开发工作,他给我们弄了几个模块,用作我们市一级单位的监管。但这只是一些工具,而不是实际能用的产品。我们可以用,但是让我们再教给下面县一级的监管科室来用就很麻烦。我们希望把这些模块整合起来,相同功能的表格进行合并,并放在一起,修改一下界面,把人工能设定的条件去掉,让用户设定时间段的起止时间,然后按搜索就出结果就行了,结果得到的答复是,省级单位并不想让我们来得到这个结果。把这个模块下方给县级单位,会拖慢省局系统的速度,然后会让升级单位的人发现。而我们市级单位的数据库设备又无法支撑起即时查询,我们领导问信息部门的负责人,要升级硬件需要花费多少,结果对方顾左右而言他,就是不说金额,反而用领导不会同意等理由来搪塞我们,弄的我们很无奈。

想想一些大型公司,一方面,集群计算开的如火如荼,Oracle 的数据库产品可谓是日新月异,而我们遇到了难题,能做的仅仅是规避,而不是客服,一下子让人觉得很心凉。

iPhone 好用吗?

岳父的三星手机摔坏了,于是岳母把旧的 iPhone 5s 给了岳父用,由我负责帮岳父清理原有的内容和初始化设置。一开始一切都很容易,到了设置 iCloud 这一步遇到了问题。岳父没有 iCloud,于是我需要用他的电子邮箱来注册一个。问道了岳父的电邮,输入后要进行验证,没有密码。问岳父,他不记得了。

之后就是登录 QQ 邮箱找回密码,当中通过了密保手机发送验证码等一系列操作,之后好歹算是搞成了。

iCloud 帐号这一步似乎可以跳过?我记不清了。不过没有设置 iCloud 是无法在 App Store 里安装 app 的,这样的智能机要来何用?

过去我一直觉得,iPhone 应该是把易用性做到了极致,因为这是苹果的一贯风格。后来有几次帮助别人设置手机的经历,让我有所怀疑这一点。这一次的经历让我仔细的回想了这些年的经历,得到了一个结论——iPhone 不比安卓手机更易用。

仔细想了想,我觉得生态是其中的关键。如果说是 Google 推出的亲儿子,我觉得不比 iPhone 容易开始用,特别是 Google 在国内无法访问,几乎连用都无法用。但在国内厂商推出的手机,或者国际厂商在中国区推出的手机,则没有这个问题。有的甚至直接开机就能用,只有帐号什么的,或者不需要,或者可以用 QQ、微信、微博帐号直接登录,这三样服务,国内用户至少有一个吧。

归根到底,也许是国内用户已经不大使用电子邮件的缘故吧。之前我对国内网络用户不用电子邮件感到很不解,后来我也渐渐明白了,各人有各人的缘法,各国的生态又何尝不是呢?中国用户现在人人都用微信,用微信也可以完成过去用电子邮件可以完成的事情,何必再要和国外用户一样执着于电子邮件呢?

不过正是由于这种不同,导致了 iPhone 在国内的水土不服。像我这种用户,了解电子邮件为何物,喜欢把一切都放在自己的掌控中的人,愿意按照苹果的安排来使用 iCloud。而之前我见过其他人的手机,从科技市场等地方买的,买的时候买家好心帮你设置,他会不厌其烦的问你电子邮件和密码?帮你注册电子邮件?所以直接把你的 iCloud 帐号设置成一个很奇怪的帐号,结果成了多个人用同一个 iCloud 帐号,导致了各种各样的问题,比如 app 升级,反正机器卖出去了,升级什么的,你凑合着用吧。这是一个解决方法,但绝不是我们给亲朋好友处理手机时的方式。

国内的安卓市场走的是另一条道路,也就是不管不问。原生的安卓系统,也是要绑定 Google 帐号的,不然就无法从 Play 商店安装 app。而国产的应用商店,直接绕过了认证这一步,一切 apk 文件可以随便下载,随意安装。国内的用户似乎也习惯了这种方式,但缺点是没有了厂商的控制,乱七八糟的 app 就进入了你的手机,比如某臭名昭著的某全家桶。

我觉得至少从这一点上,苹果没有抓住中国用户的独特方式。把电子邮件作为 Apple ID,不如直接用手机号码来绑定,这样应该更加方便一些。否则,对中国用户来说,门槛稍高了一些。

找个邮件客户端还真难

前几天我又在这个新的 iPhone 6s 上安装了一个 Spark,开启了这次寻找邮件客户端的旅程。

Spark 刚开始推出的时候我就下载过来试了试,结果有点不尽如人意。虽然外界的评论都很好,但在我这里有个非常严重的问题——没有邮件推送。我同时设置了苹果官方的邮件客户端和 Spark,结果有了新邮件,官方的客户端早就有了提示,而 Spark 就一直没有,只能通过手动打开应用,才开始刷新。这就失去了在手机上使用邮件客户端的意义。所以在我买了新的手机之后,我没有继续安装 Spark。

官方的邮件客户端没有归档功能,挺让我不习惯的。这么多年来我已经习惯了用归档功能来保持收件箱一直为空。苹果死活不肯添上这个功能,在 Mac 上的客户端里,可以手动添加一个归档按钮,可以一样使用,但 iOS 上的客户端就没办法了。最后无奈,我只好再次寻找一个邮件客户端。

首先我安装上了 Spark。毕竟它比较新,我想也许一段时间之后就会添加上我需要的功能。然后我在田家邮箱服务的时候,在通知设置这一步遇到了麻烦。Spark 说我的 Fastmail 服务器不支持远程连接,所以没法对新邮件进行推送通知。本来这是 Spark 宣传的一个功能,可以让你选择时接收全部通知还是让 Spark 智能为你决定要推送的邮件。结果在我的手机上,这个功能生生的是一片灰色。

我于是给 Fastmail 写信,交流几次之后,Fastmail 说不是他们的问题,他们的邮箱服务可以适用于任何客户端。之后我只好给 Spark 发邮件,反映了这个事情,结果一直没有收到回复。

之后,我上网搜索一些评价比较高的第三方客户端。同时,那段时间正好 Airmail for iOS 推出,我之前听说过 Airmail 的大名,但没有用过。这次正好也看到了它的介绍,顺便买了试试。最后,我安装了 Airmail、CloudMagic、还有 Boxer。

我看的文章中对 Boxer 评价最高,那个作者还专门花钱解锁了多个账号功能。我试了之后觉得不大对路,首先是我一直没有接收到新邮件提醒,其次是他的设计哲学。我不是很喜欢像 Outlook 那样大而全的办公助理,除了邮件功能外,还囊括了通讯录、日历、便笺等功能。话说我手机上正在使用的日历和 Notes 怎么办?Boxer 的东家又不是微软,干嘛要什么事都大包大揽?我十分不喜欢。

CloudMagic 的问题跟别人说的一样——太丑了!给我的感觉就像是在使用上个十年的产品,它的功能也许够用,但这个界面真是与手机的整体界面不太搭。

Airmail 真是让我又爱又恨。首先,它的界面很好看,很现代。但它也有很严重的问题。有些邮件它不能很好的处理,比如我订阅的 IT 公论通讯,在 Airmail 里的断行有问题,断的太晚,导致每行最右边几个字都看不到。我给客服发邮件,也是没有回音。还有就是它的 GTD 策略,是通过在邮箱中添加几个分类目录完成的,而我不想用这个功能,邮箱里多了一个 [Airmail] 目录还有下面的几个分目录,我看着十分碍眼。

最后,我还是都保留了这些客户端,因为也没有做出什么决定。日常 Airmail 和 CloudMagic 的推送来的很及时,我到了官方客户端里看完内容后,再去 Airmail 里归档,想想也是醉了。

终于把电子邮件配置正确了

在我真正使用 Linux 之前,我就对用 mutt 来处理邮件充满了兴趣,想想应该是受到了王垠的文章的影响。另外,UNIX 对我一直是神秘、有趣的代名词,我对 UNIX 传统的那些东西,比如 USENET 等,都非常有兴趣。UNIX 传统处理电子邮件的方法就挺有趣:把处理流程分开,每一步分别使用不同的软件,符合了 UNIX 的 KISS 原则。

所以,我在自己的电脑上安装了 Linux 之后,就开始配置 mutt 和 fetchmail、msmtp 等工具,用这个方法来处理邮件,一直到我的那台 Dell 笔记本坏掉为止。后来用了 MacBook,就换成了 Mail.app,没有再用 mutt 了。

这次我安装 ArchWiki 后,重新选择了 mutt,结果总是让我不习惯。原因是在我用 MacBook 期间,我接受了 Gmail 开始提供的邮件归档功能,把读过的邮件都进行归档,保持了收件箱为空。Mail.app 虽然默认没有在工具栏上提供这个按钮,但还是可以手动加上的。后来回国后,Gmail 不能正常访问,我换到了 QQ 邮箱。QQ 邮箱的评价还不错,而且 QQ 企业邮可以让我绑定我的域名,继续使用过去的邮箱。但是 QQ 邮箱没有归档功能,让我十分不习惯。然后经过探索,我得知了 Fastmail,他的收费版本可以让我绑定域名,也有归档功能。经过考虑与试用,我切换到了 Fastmail。之后我发现 iPhone 上的邮件应用没有归档功能,所以我经过查找,安装了 Spark。

就是这点让我这次使用 mutt 后感到不习惯。我用 fetchmail 把邮件交给 procmail 处理,放到 Maildir 后,mutt 读完了,没有归档功能,也没法再修改远程的邮件。所以之前我在 mutt 中读完了邮件后,只好去手机上把邮件归档。这让人很不爽,一是多了一步手续,二是服务器上归档了,可本地的邮件还在,我本地的收件箱中在几天攒了上百封邮件。我一直在搜索别人写的 mutt 经验,感叹要是我还在用 QQ 邮箱,也许配合 mutt 会更自然。前几天我看到有人用的 mutt 自带的接受、发送邮件的功能,只要把配置文件中的邮箱路径设置成“imaps://”就可以了,把 mbox 设置成归档邮箱,也可以达到归档的功能。我新建了一个配置文件,设置成功了,不过每次打开 mutt,都要等待它去检查新邮件,也有点让人烦。然后我看到了有不少人在使用 OfflineIMAP,之前我知道它跟 fetchmail、getmail 一样,是一个接受邮件的工具,但之前用过另两个,就没管它。这场试试吧。

结果随着我跟着文档配置,我在解决了 SSL 认证等问题后,可以让它抓取邮件了。我看别人的配置中,在抓取邮件时,自动把 Gmail 邮箱的前缀通过正则表达式替换给弄掉,我觉得 Fastmail 里所有邮箱都带着“INBOX.”前缀也可以这么给弄掉,于是就照抄了过去,结果下次运行失败,让我知道了 OfflineIMAP 竟然可以双向同步!这可是个大发现,这意味着我可以在本地进行处理邮件后,再同步到服务器上。归档邮件就是把邮件移动到 INBOX.Archive 邮箱,删除就是移动到 INBOX.Trash 邮箱,标记垃圾邮件就是移动到 INBOX.Spam,设置 postpone 为 INBOX.Sent,就可以保留发信记录,真是太好了!

接下来就是查阅 mutt 文档,添加这些功能。之前我为了图方便,没有研究这些复杂的功能,也觉的不需要,现在加上了不少。同时,还添加了一些快捷键,模仿 Gmail 的操作,比如可以按 gi 跳到收件箱中,还有些 Emacs 风格按键,比如 Ctrl+f 向后翻屏等。弄好后一试,果然成功。

之后还有一步,就是让 OfflineIMAP 定期同步。我看网上介绍了几种思路:ArchWiki 的思路是让 OfflineIMAP 以守护进程运行,定期收取,用 Systemd 自动启动;别人的博客上的思路是每次通过 -o 参数,让 OfflineIMAP 只运行一次,配置 Systemd 来让 OfflineIMAP 自动运行;还有是同样的思路,只是改用 Cron 来让 OfflineIMAP 自动运行。之前我用 fetchmail 的时候,就是守护进程,当中发生过收取邮件不及时的情况。所以这次想用系统来管理重复运行。我过去用过 Cron,但 Systemd 还是安装了 ArchLinux 后才第一次听说,过去以为是 Init 的代替品,没想到还可以用作自动执行。因为用 Cron 还要安装软件,因此我想试试 Systemd。

我先按照 ArchWiki 的说明来弄,只好一直启动不成功,看了 log,OfflineIMAP 被 root 来执行,自然从 root 的目录里找配置文件,找不到就报错了。之后我按照别人的博客上的做法,创建了 service 后又创建 timer,然后启动 timer。启动似乎成功了,但一直不能正确运行。最后 OfflineIMAP 的 -a 参数让我有点困惑,不清楚后面跟的是 Linux 的用户名还是 OfflineIMAP 的配置文件里的配置名。之后找了一些 Systemd timer 的例子,虽然没有解决问题,但对 Systemd 的配置有了更深刻的理解。这时我又看了 ArchWiki 的介绍,才发现了之前我忽略了 offlineimap@ 的问题,原来可以从这里指定用那个用户来执行 Systemd 的服务。我加上了用户名后,结果运行正常了。通过几轮测试,终于圆满的解决了处理电子邮件的功能。

因为了解了 Systemd 如何开机自动执行服务,我把 Shadowsocks 客户端也一并用 Systemd 来管理了。这才发现,Systemd 简直管理了 ArchLinux 的所有提供服务的软件,Shadowsocks 和 OfflineIMAP 都在 /usr/lib/systemd/system/ 目录下有相关的配置,没有特殊需求,直接就可以使用。我还了解了 Systemd 有普通用户用的服务管理,等研究一下让它给我启动 MPD。

更换电子邮件服务

我几个月之前就想换一个电子邮件服务商。除了我刚刚上网时申请的一系列新浪、网易、搜狐、中华网等等的电子邮箱外,我最早固定下来使用的是 Gmail,后来把自己的域名绑定到了 Google Apps 上。早期是 cnliufeng.com 这个老域名,后来买了 liuf.net 这个域名,也是绑定了 Google Apps,后来似乎 Google Apps 取消了免费的服务,不能再绑定新的域名了。

这个域名一直使用到了回国。那个时候 Gmail 已经被封锁,我无奈之下调查了一下国内的电子邮件服务商,只找到了 QQ 企业邮箱是支持绑定自己的域名的。我只好选择了 QQ,有些地方不大合我意,但总好过只有连 VPN 才能收发的 Gmail 邮箱。而且 Google 在近年来让我觉得有些“倒行逆施”,我对它也没有之前那么大的忠诚度了。

QQ 邮箱对我来说有一个缺陷——没有归档功能。也许是被 Gmail 给惯坏了,在用 Gmail 之前,甚至是用我注册的第一个 Gmail 邮箱的时候,我都不会用这个功能。到了后来我知道了它的作用,时间长了竟然觉得离不开它了。结果问题来了,QQ 邮箱没有这个功能怎么办?只好换一个呗。

其实,这个归档功能并不是电子邮箱的必备功能,也难说是电子邮箱的发展趋势。Google 为什么要加上这个功能,我不清楚,但 GTD 的流行让归档这个功能显得这么的自然、契合。在中国,归档这个功能应该是一个比较小众的功能,甚至在世界上,雅虎、苹果的电子邮箱,都没有跟风加上这个功能。因此,未来 QQ 邮箱能有归档这个功能的几率非常小,所以,想要归档功能,换一个邮箱服务商也就是必须的了。

之前经过搜索调查,也是一个比较偶然的机会,我找到了 Fastmail,据说跟 Opera 有些渊源,这不是关键。首先,它是一个收费的电子邮件服务商,专注做一件事情,让我觉得挺不错的。支持归档,可以绑定自己的域名,虽说要额外付费。有 30 天的免费试用期,我注册过,但没有完全迁移。主要原因是我在给老婆买了 iPhone 后,比较白痴的在我的域名邮箱中给她注册了一个账号,比较类似于情侣号的意思,然后用这个账号给她注册了 Apple ID。Fastmail 的非家庭账号用自己的域名只能关联一个账号,因此我不能保持老婆的邮箱,所以只能放弃。

昨天,我终于抽空用一个 QQ 邮箱替换了老婆的 Apple ID,然后把自己的域名邮箱迁移了过去。Fastmail 的迁移做的不错,可以通过登录 IMAP 服务器来把过去的邮件都传送到新邮箱去,我也借此转移了过去在 Gmail 上留下的一些邮件。设置 Mail.app 客户端废了些功夫,我自己也犯了错,想毕其功于一役,直接设置好了客户端,在本地处理邮件,因此也没有管 Fastmail 给新用户发的邮件内容。结果要用客户端登录试用账号,要修改 IMAP 端口;要用 SMTP 发送信息,需要先验证身份,我没有进行过这一步,费了一段时间。

弄好后有了归档功能果然很舒心。Mail.app 也支持这个功能,只是默认不显示归档按钮,把它调出来就行了。我这才是刚开始用,还没有进入实际付费阶段,也不确定将来能不能一直用下去,至少在今天这个找不到一个较为舒心的电子邮箱的时候,这个是可以用一阵子的。

64 位主机可以发邮件了

最近趁着春节假期,捣鼓了一把 VPS,主要是想架设 OpenVPN,不过目前还没有成功。我几年前还在用 Ramhost 的时候,在上面架设成功过一次,当时人在加拿大,日常用不着翻墙,纯粹是试验,所以也没有记录细节。现在再弄,就又有些云里雾里了。最好的成绩是能连接上,从 ip38.com 里能看到 IP 地址来自这一块变成了我的 VPS 主机所在地,但是上不了网,没有数据。其它的情况就是连接不上,说是握手错误。从网上找到一些论坛,也没有解决,更不知道默认的端口有没有被封锁 🙁

除此之外,之前的 VPS 也该整理了。我有些后悔从 Ubuntu 12.04 LTS 升级到 13.04 版本了,现在试着升级到 13.10 不成功,升级后 Apache 没法启动了,不升级的话旧版本又不知道出了什么问题,太慢,ssh 登陆后总要登上那么五、六秒钟才能出现提示符。早知道做这种系统升级困难当初就应该坚守 LTS 不动摇,我于是又切换会了 12.04 这个 Profile,把博客等数据库也都转移了一下。结果立竿见影,我的邮箱的 blog 标签马上就又一次收到了信息。这个标签是我专门过滤 WordPress 给我发的维护邮件,有了评论什么的我马上就可以直到。我换到 64 位的主机后就再也没有收到过邮件了,所以我真想就这么用会 12.04 版本。可惜我的 12.04 LTS Profile 也有些奇怪的问题,比如登陆后 bash 载入不正常,我制定的 aliases 都失效了,ls 显示也没有了颜色,必须我手动运行一下 bash 才恢复正常,或者是进入 screen 也算是正常了。中间哪里出问题了,我也找不出来。试着重新建立用户,反而把过去的一些权限给弄坏了。

无奈之下我只好重新建立一个 Profile。因为我觉得 Ubuntu 的大升级对我来说有点“重口”,我想要一个可以完全平滑升级的系统。Gentoo 用作服务器有点超前,ArchLinux 我又没用过,最后只好选择了 Debian 7.3。Linode 在最新的发行版选择中,Debian 只有 64 位版的,而且 Linode 自己也说推荐使用 64 位版的,我就被蛊惑的选择了 64 位版。进入了之后我发现依旧不能发邮件,而且 OpenVPN 也没有配置好。所以今天早上,我重新创建了一个 Profile,选择了老版本的 32 位的 Debian 7。反正 Debian 升级保守,我用 apt-get 手动升级的办法也能保持最新,不用去追求副版本号的不同。在配置它的过程中,我由于忘了在运行旧的 Profile 的时候就打开我的 wiki 上的 VPS 配置页面,于是切换回了 64 位的 Debian 7.3 Profile 中。期间又看到了 Linode 关于邮件系统的描写,除了 Postfix 之外,更轻量的、我过去用的 Exim4 也有一篇文章,我照着配置了一遍。这篇文章也给了我信心,因为 Linode 自己也认为 64 位的主机发邮件也没问题。虽然结果我还是没有成功发送邮件,但这篇文章的末尾给了我很好的思路。

文章的结尾说了测试邮件可以正常发送的方法,就是这么一行命令:

echo "This is a test." | mail -s Testing someone@somedomain.com

我过去一直是去 WordPress 里发表一篇评论看看有没有收到邮件的,或者是去 PHP 探针里发送邮件试试的,而命令行发邮件的方法我还没有学会。这次试验了一次命令行,马上就从终端看到了错误信息,这样子解决问题的思路就有了。我发现原来是几个目录的权限有问题,Exim4 居然无法访问它们,比如 /var/spool/exim4,还有它自己的 log 目录。把这些目录的所有人和组改成 Debian-exim 后,发送邮件成功了。真是一个超级大的进步!

说实在的,我对于在服务器上用 64 位的系统是有些顾虑的。最早来源于 Site5 的共享主机。那时候我用的还是 Movable Type 系统,它需要一个名为 ImageMagick 的 Perl 模块来处理图像。当时我们买的 Site5 主机就是 64 位的,我通过跟客服交流,就是 64 位服务器的兼容性问题。当时觉得这个功能不是特别重要,我就没有迁移到 32 位主机。关键是当时是跟别人合租的,我也不好擅自做决定。后来我也遇到了 64 位服务器无法发出邮件的情况,一次次的经验积累下来让我有了“64 位主机不能正常发邮件”这个印象。到了今天总算是打破了。

改密码了

今天,我把用了有十多年的密码给改掉了。

这一个密码起源于 1999~2000 年,那时候是我刚开始接触互联网的时候。要上网就要有一个个人 id,在当时就是 email 账号。

在 Gmail 出现之前,没有人想到免费的电子邮箱的空间可以上 G。开始的时候还好一些,似乎是泡沫刚开始的时候,各种免费邮箱层出不穷,空间从 1M 到 100M 不止。加上服务、口碑、稳定性等因素,我选择的是新浪的邮箱。同时代的还有网易、搜狐等,不过综合都不如新浪。我那时候还是追求高大全的年龄,因此新浪那 50M 的巨大空间打动了我,我就不会再看其它的邮箱了。之后中华网又出了 100M 的 @china.com 邮箱,我们又惊为天人,赶紧申请,后来这个网站也没了。几年后我得知新浪邮箱的空间由 50M 成为了 10M,欲哭无泪但也相当无奈,因为这时电子邮箱的泡沫破裂了,没有人提供大空间的邮箱,我也只能凑合着用。后来父亲的公司的邮箱系统可以免费注册,我用本名注册了一个,于是一直用它。再之后我成功弄到了 Gmail 的邀请,然后其它的邮箱都成了浮云了。

在我注册第一个邮箱时,我真是什么也不懂,从新浪的首页上找了半天,愣是没明白新浪账号和新浪邮箱的关系,最后不了了之,到了后来问了同班同学才知道要申请邮箱就是要申请账号。那时我刚开始上网,把一切都看得很正式,邮箱的名字也想了半天。到我申请账号的时候新浪账号的用户名已经被占用的差不多了,到了最后我搜肠刮肚才起了一个到现在看来没有任何含义的用户名。密码我也想了半天,后来参考过去同学的密码才弄好。其中包含了大小写字母和数字,基本上没有什么含义,但其中包含了我的名字。为了别忘记密码,我把这个密码给牢牢记住了。到后来我申请其它的账号的时候,懒得想新密码,就一直用着这个密码。

这个密码总体来说感觉还可以。有些网站填写密码的时候会对密码强度进行评估,这个密码的结果总是 strong。一般人想从个人信息里猜出密码来也不可能。不过当我后来申请 MSN/hotmail 账号的时候,MSN 不允许密码里包含姓名相关的字符,于是这个密码就被荡下来了。不过我在申请完毕后把密码又给改回来了,因为我不想再记新的密码。

我比较早就知道网站存储密码的原理了,于是一直觉得这种密码都很安全。到了 2007 年 3 月,我知道了用 md5 等算法保存的密码很容易破解。去这个网站把我的密码被 md5 转换后的密文输入进去,几乎马上就出来了我的密码原文。有了大型数据库后,用暴力解法计算各种密文,再逆向破解,在数据量足够大的情况下,这种密码保护很脆弱。

单纯这么个问题其实也没什么,但我在这十多年里一直使用这同一个密码,包括我的电子邮箱与各大网站上的注册账号。如果我的信息被别人看到,别人再算出我的密码来,就可以根据我登陆的邮箱地址和我的网站注册密码来登陆我的邮箱,因为这两者是完全一样的。这是一个比较大的安全隐患,我为此考虑了很长时间了。

在注册网站账号时,我选的用户名比较不错,在注册网站的时候我极少遇到过重名的情况。所以我用这个用户名和密码在无数的网站上注册了无数个账号。我现在根本不记我在哪个网站上注册了什么账号。遇到需要登陆的时候,我就用这个用户名和密码登陆,如果不行就用备用的用户名,如果再不行就说明我没在这个网站注册过,然后我就注册一个账号,用的就是我一直用的用户名。我觉得这样挺方便。

但这无数个账号就是隐患的来源,只要有其中一个网站发生了我上一段中说的那种情况,我的邮箱就危险了。从目前来看,电子邮箱是我所有网络 id 里最重要的一个。虽然我的邮箱目前在自己的域名下,不管怎样都会找回我的密码,但我的隐私什么的泄露出去,可不是一件好玩的事情。

这些网站的账号太多了,一一更改明显不现实,所以我要做的就是更改我的邮箱密码。

我在上高一的时候开始接触 USACO 上的题库。那时那个系统还比较低级,注册的时候不问你要设定什么密码,系统会给你生成一个 7 位的字母和数字组成的密码,日后不允许更改。用户名也不能自由设定,而是根据你的邮箱地址来生成的。比如我注册时用的邮箱是 liufeng@sd-xxxxxxx.cn,于是我的用户名就成了 liufeng1。我记不住系统给的密码,于是就把用户名和密码发到自己的邮箱里,每次去做题的时候都从邮箱里复制密码然后粘贴过去。久而久之,大概半年后,我也自己记住了密码,可以不用查看就能登陆了。

这个密码我感觉不错,没有任何信息,所以不易破解;但长度很短,非常容易记忆。我到了加拿大之后,有一次回忆起过去的生活,于是又上了 USACO 的网站,发现我竟然还把这个密码记的清清楚楚的,并且可以成功登陆这个系统,这是在五年多之后了。这时我发现这个系统已经允许用户修改自己的密码了,我非常缅怀那时候的日子,包括这个密码,于是就留着没动。

这次我改的新邮箱密码,就是以这个密码位基础,添加了一点新东西生成的。目前感觉不错,接下来就是确保记忆了。

Mail.app 的 Junk check

mail-app-logo今天中午发现了一个相对比较严重的 Mail.app 程序在垃圾邮件检测时的问题。

在回复老师的邮件时,我突然想到了已经很长时间没有检查 Junk 文件夹了,于是就顺便过去看了一看。在往下滚动的时候,我看到了有很多我希望保留的邮件被标记为了垃圾邮件。不止是中文邮件,英文文件也有好多。其中最明显的可能是来自 Flickr 和 Orkut 的邮件了吧。我之前在曙光博客上的留言回复通知也被过滤了。还有之前我同学给我发送的邮件,以及上个学期我们《密码学》教授群发的邮件也被过滤了。Site5 发来的 Adsense 优惠码也被挡住了。

中文邮件我勉强也就理解了,但英文邮件竟然也被过滤就让我觉得不可饶恕了。难道苹果不会设定一个白名单吗?像 Flickr 这种大型社区的邮件,以及一些著名大学相关科系的邮件,是无论如何也不应该被过滤的。虽然这些邮件主要是通知我某人又把我加入好友列表了。也好在我教授群发的邮件没有什么关键性的内容,否则损失就大了。最主要的一封邮件,是关于今年学校注册部门给发来的保险认证邮件,也被档了下来。

除了白名单之外,Mail.app 也应该更智能一些。比如说 Google Mail 的垃圾邮件过滤是非常优秀的,那么一个帐号是 Gmail 的话,是不是就不需要再做一次过滤了呢?就算不是默认设定,那么针对某一个帐号的垃圾邮件过滤开关也应该提供吧。我找了几次也没找到。也许通过在命令行输入一些命令可以设置,但这种选项应该提供给全部用户了吧。

经过这次事件,我对 Mail.app 有一点失望。我当时在看 Mac OS X Snow Leopard 的演示视频的时候,印象最深的就是和 Mail.app 相关的几个程序。尤其是 Mail.app 和 iCal.app 以及 Address Book.app 程序之间的互通,让我觉得在日常应用之中应该会很方便。但在日常当中,这些日程安排的功能我用的都不是很多,因此现在也动摇了一些我的对 Mail.app 的信心。我看到过有些人在 Mac 上使用 Thunderbird,我当时有些奇怪──既然系统已经有了 Mail.app 这么一个非常好用的客户端了,为什么还要用第三方的?不过目前这种想法有些改变了。我可能会在未来试验一下其它的软件。

最后也要批评一下学校邮件系统的垃圾过滤系统。应该过滤的不过滤,不该过滤的反而过滤了。我在用 Linux 的时候用过 mutt 来收发邮件,后台用的好像是 getmail,没有设定本地的垃圾邮件过滤。学校的邮箱基本上一天到晚被各种各样的垃圾邮件充斥着,根本无法使用。这也是我用 Mail.app 的一个原因,就是它可以帮我过滤邮件。而学校的过滤系统确实曾经过滤过 Facebook 的邮件确认信。那时候(2007年)Facebook 还只能用大学的学校邮箱来注册,因此我只能用我的学校邮箱来注册。但却收不到确认信,后来才发现是被学校给过滤了。我当时在 Facebook 中说起过这件事时,收到很多校友给我的信息,问我怎么样才能收到确认信,看来学校的这个垃圾过滤系统给不少人带来了麻烦啊。