后缀stream/钩参考,或高层次的概述?

Postfix MTA由多个组件/服务组成,这些组件/服务一起工作来执行邮件的递送和接收的不同阶段; 这些包括smtp守护进程,拾取和清除进程,队列pipe理器,smtp服务,pipe道/产卵/虚拟/重写…等(包括自定义组件的可能性)。

Postfix还提供了几种types的挂钩,使其能够与外部软件(如策略服务器,filter,反弹处理程序,logging器和authentication机制)集成; 这些钩子可以连接到交付过程的不同组件/阶段,并且可以通过(至less)IPC,networking,数据库,几种types的平面文件或预定义的协议(例如milter)进行通信。

这个页面显示了一个古老而非常有限的例子。

我的问题:

有没有人有权访问描述这些钩子的资源,钩子可以与之交互的组件/交付阶段以及支持的通信方法? 或者,更可能的是,各种Postfix组件的文档以及它们支持的钩子/方法?

例如:

鉴于要求“ 如果收件人主MX服务器匹配'shadysmtpd',检查收件人地址对列表;如果有匹配,终止SMTP连接,恕不另行通知 ”。

我的软件需要1)集成到SMTP过程的适当部分,2)使用一些方法来执行地址检查(TCP映射服务器?正则expression式?mysql?),3)执行所需的动作(连接终止) 。

此外,可能会有几种方法来实现这一点,另一个要求是find最适合的方式(例如:networking服务器可能比平面文件查找更快;或者,如果大量邮件可能受到影响通过这种检查,应该尽可能在邮件过程中执行)。

现实世界的例子:

apolicy策略服务器(根据用户定义的规则对地址进行检查)被devise为一个独立的TCP服务器,它通过smtpd_client_restrictionsconfiguration中的指令“ check_policy_service inet:127.0.0.1:10001smtpd_client_restrictionssmtpd组件内的Postfix选项。

这意味着,当Postfix第一次接收到一个邮件要发送的时候,它将创build一个TCP连接到策略服务器地址:端口,目的是确定客户端是否被允许从这个服务器发送邮件(除了在该选项中定义了其他限制/限制查找方法); 将根据服务器的响应采取适当的行动。

笔记:

1) Postfix体系结构页面描述了ascii艺术中的一些信息; 我所希望的是蒸馏,浓缩,参考材料。

2)如果我在任何一个层面上都错了,请纠正我; 有一个山的材料,我只是一个人;)

谢谢!

stream量的一个非常老的图片在这里: http : //www.postfix.org/big-picture.gif

http://www.postfix.org/documentation.html您正在查找SMTP中继/访问控制和内容检查(所有这些文档)下的文档。

我会很高兴提供具体的build议,但文档是一个相当不错的总结。

对于上面给出的示例查询,您将实现自定义策略服务器。 有关示例,请参阅http://www.postfix.org/SMTPD_POLICY_README.html