在浏览了 milter 的协议描述和具体的实现之后,决定自己动手实现一份。
sendmail 里面的 milter client 的实现,实在显得太复杂了。很多基本功能都没有实现为函数,在用到的地方直接实现;而且 sendmail 偏偏要实现所有的灵活性,导致代码的可读性非常糟糕。看了 sendmail 的具体实现之后,以为 milter 协议会很复杂,实现起来会有难度。在调通了 option 命令之后,发现并不复杂。中间花了一些时间在研究所谓的 macro 要传什么值。
具体的实现在 spnetkit 库里面。这次还顺便增加了 icap 的 client 。
[url]http://spnetkit.googlecode.com/files/spnetkit-0.3.0.src.tar.gz[/url]
sendmail 里面的 milter client 的实现,实在显得太复杂了。很多基本功能都没有实现为函数,在用到的地方直接实现;而且 sendmail 偏偏要实现所有的灵活性,导致代码的可读性非常糟糕。看了 sendmail 的具体实现之后,以为 milter 协议会很复杂,实现起来会有难度。在调通了 option 命令之后,发现并不复杂。中间花了一些时间在研究所谓的 macro 要传什么值。
具体的实现在 spnetkit 库里面。这次还顺便增加了 icap 的 client 。
[url]http://spnetkit.googlecode.com/files/spnetkit-0.3.0.src.tar.gz[/url]