总算找到时间把邮件系统迁移给做了

| 9 Comments | No TrackBacks |

之前用的邮件系统是基于 postfix、Cyrus IMAPd、amavisd-new等软件在2006年搭建的,跑了5年多,作为不折腾会死星人,对这套系统一直有相当多的不满意,举例来说:

Cyrus IMAPd支持 foo+box@domain.tld,也就是如果foo用户的邮箱中存在'box'这个子目录时直接投递到那个子目录很有问题;

Cyrus IMAPd采用的是自己的邮箱格式。支持这种格式的只此一家;我虽然不是Maildir的fans,但Maildir是一种事实标准,而且处理起来工具也要多的多;

amavisd-new和postfix的集成原先是采取双MTA的方式进行的,这种做法会导致至少多一倍的磁盘I/O(好处是在系统过载的时候不影响进信),并且由于多了一个环节有可能引入更多的不确定性【1】;

当然其实更重要的还有:

为了便于备份而采用的 ZFS 快照和远程复制机制,以及,

原先的服务器和我的物理距离太远,为了访问速度必须要做迁移。

新的方案大致如下,有时间慢慢整理howto出来:

  1. MTA:postfix(未变)
  2. 目录服务:OpenLDAP(未变)
  3. 反垃圾套件:amavisd-milter + amavisd-new
  4. IMAP/POP3服务:dovecot
  5. OS:FreeBSD 8.2-ATWATER-p2
  6. 撤掉了队列前的 SenderID milter,这部分功能已经由 amavisd 实现了,而且事实上现在也很少有人在生产系统中用 SenderID/SPF 来阻止别人冒充自己发邮件。

现在还差一个队列前会话期间反垃圾的策略服务。之前采用的是 postfix-gps,找了一圈没有找到一个让人感觉靠谱的,所以准备找时间自己拿 twisted 重新写一个然后开源放出来。


【1】这个说法可能是有争议的。我认为以milter方式集成的好处是对方看到的是超时而不是已经将邮件收下,因此出现问题的机会要少一些。

No TrackBacks

TrackBack URL: https://blog.delphij.net/mt/mt-tb.cgi/1832

9 Comments

沒有考慮用 dspam + dovecot-sieve?

之前看到你提到pix干扰startls的问题,请问后来怎么解决的?

跟老大请教个问题。一直觉得邮件服务器很重要的一点就是稳定,毕竟你不知道别人什么时候向你发送邮件嘛。但是这样的要求对网络、服务器、机房都要求比较高,再加上无处不在的垃圾邮件,个人维护一个自己邮件服务器的成本还是很高的。现在google、MS都提供了免费的邮箱服务,可以使用自己的域名搭建并管理自己的邮件服务,这就成了一个稳定、高效切低成本的新选择。
当然这样的服务也有缺点,就是你必须付出隐私和安全(信息安全)的代价作为交换。我正在为两种选择纠结。想请问的就是这样的服务我到底需要付出,或者无法控制的风险到底有哪些?如果能对这些风险,举一些例子就更好了,谢谢。

感谢这么详细的回复。想在问一下:
关于a),这里面第一时间拿不到自己的数据是什么意思?是说不能访问之前已经收到的邮件吗?关于这个我是采用了比较土的办法,就是用一台客户端每小时同步一下。不知道这种土鳖办法是不是能解决拿不到数据的问题。
关于e),我之前也遇到这个问题。我现在的解决办法就是不发邮件。不知道老大有什么解决办法没有。难道让gmail帮我发送这些邮件?

啥时候整理个how to 出来呢?
准备研究一下,没有clue