流程示意:
1.
客户端连接sendmail,sendmail调用mimedefang定义的回调函数xxfi_connect,mimedefang调用
mimedefang-multiplexor,由mimedefang-multiplexor运行mimedefang.pl脚
本,mimedefang.pl检查是否在/etc/mail/mimedefang-filter中定义filter_relay,如果定义则调用
2.
sendmail收到客户端helo命令,调用mimedefang定义的回调函数xxfi_helo,mimedefang记录信息然后返回
3. sendmail收到客户端mail
from命令,调用mimedefang定义的回调函数xxfi_envfrom,mimedefang传递命令给mimedefang-
multiplexor,mimedefang.pl脚本检查是否在/etc/mail/mimedefang-filter中定义
filter_sender,如果有则调用
4. sendmail收到客户端RCPT
TO:命令,调用mimedefang定义的回调函数xxfi_envrcpt,mimedefang传递命令给mimedefang-
multiplexor,mimedefang.pl脚本检查是否在/etc/mail/mimedefang-filter中定义
filter_recipient,如果有则调用
5.
sendmail收到客户端DATA命令,然后接收邮件内容,其中会调用mimedefang的回调函数xxfi_header、xxfi_eoh、xxfi_body、xxfi_eom
6.
邮件内容收到后,mimedefang会通过mimedefang-multiplexor运行mimedefang.pl中的do_scan函数,而在
do_scan函数中会检查是否在/etc/mail/mimedefang-filter中定义filter_begin、filter_end,如果
定义会调用,并且在两者间调用其他mimedefang.pl中的函数,,当中又会检查是否在/etc/mail/mimedefang中定义
filter函数和filter_multipart函数,如果有则调用
阅读(6040) | 评论(0) | 转发(0) |