最近验证搭邮件服务时遇到个小问题:成功收到的邮件中,发件人没有按姓名来显示。当时直觉上认为,这应该是邮件服务端的配置问题,并记了下来。
后续尝试解决这个问题时,也很快找到了在服务端处理的方式。可就是感觉不太对——这么简单的功能,为什么不直接提供成配置,而需要通过正则表达式等方式匹配替换邮件内容中的发件人信息?这样的处理方式会做额外的查询,加上替换处理,不是无谓的开销么?
然后发现,如果只是实现地址显示名的功能,确实不应该这么干。因为邮件服务的核心职责是邮件的传输、路由和存储,而邮箱地址的显示名通常都是邮件客户端处理的——发件人的显示名是来自配置邮箱账号时填写的昵称/帐号名(不同邮件客户端的叫法不同),而收件人的显示名是来自邮件客户端的通讯簿或历史记录等。(至于这样可能存在的伪装身份等问题,则应另看)
经验整理:
1、仅凭直觉做事应谨慎,特别是在了解不够的时候。
直觉不少时候可能产生误导,如果不加分辨和思考,很可能达不到好的效果。
2、反过来,积累一定的知识经验对于快速做出正确判断应该是比较重要的。
如果对邮件相关知识比较了解,或用得比较多,可能一下就能反应过来这个问题。
3、从原理上去审视,有助于找到更加正确的方向。
就这个例子,算是从原理上推断,发现了疑问,避免掉走更多的弯路。但如果一开始就多些思考,可能就不会去走这么条错路了。
有时做事还是应多想,别懒 *_*