如何整合postfix和mimedefang

我如何使用Postfix的MIMEDefang过滤电子邮件? 我不想写一个SMTPD处理程序,所有关于MIMEDefang的信息都涉及到如何将它与Sendmail一起使用。

因为我昨天刚刚做到这一点,所以要在这里查一查:

你不必滚动自己的东西。 所有你需要的是postfixlibmiltermimedefang这些在EPEL中可用的RPM,所以它们应该在其他发行版中可用,这些发行版实际上存储了当前版本的软件包,而不是EL回收软件所做的4-6年前的版本。 但是我离题了。

在Centos 6.5上简单:

 yum install mimedefang 

这将蜘蛛出并得到sendmail-milter [aka libmilter ]作为依赖的一部分。 [SpamAssassin以及]

之后,我build议更改MIMEdefang的套接字设置,以使用inet套接字而不是unix套接字。 这主要是为了避免权限问题,因为我无法find适用于Postfix和MD的用户和权限的组合。

/etc/sysconfig/mimedefang取消注释并编辑SOCKET行:

 SOCKET=inet:10997 

无论你想要的港口,10997是我的随机select。

现在:

 service mimedefang start chkconfig mimedefang on 

现在你可以简单地将milterconfiguration文件添加到main.cf或者像master.cfsmtpd -o一样添加:

 smtpd_milters = inet:10997 

要么build立或安装mimedefang (我使用yum,因为这是在CentOS 6.4系统上完成的)。 这也将安装sendmail,但不要惊慌 – 这是一个软件的要求。 如果你正在build立注意,你将需要这种依赖。

要使用这个过程编写一个milter,你需要search和修改名为mimedefang-filter的文件。 有许多样本可用,取决于您是否自build或使用RPM,系统中可能会有一个或多个可用的样本。 把这个文件放在/ etc / mail中 ,确保它是可执行的。

创build一个名为/ var / spool / MIMEDefang的文件夹。

findmimedefang的服务控制代码,并将其放在/etc/init.d中 。 使其可执行。 用一个编辑器打开这个代码,find这样的部分:

 # Tricky stuff below... "echo -E" won't work, hence the two-step. daemon $PROGDIR/$prog-multiplexor -p /var/spool/MIMEDefang/$prog-multiplexor.pid \ $([ -n "$FILTER" ] && echo "-f $FILTER") \ $([ -n "$SYSLOG_FACILITY" ] && echo "-S $SYSLOG_FACILITY") \ $([ -n "$SUBFILTER" ] && echo "-F $SUBFILTER") \ ... more lines follow with the same formatting... $([ "$MX_STATS_SYSLOG" = "yes" ] && echo "-T") \ $([ "$MD_ALLOW_GROUP_ACCESS" = "yes" ] && echo "-G") \ $([ -n "$MX_NOTIFIER" ] && echo "-O $MX_NOTIFIER") \ echo "-U defang" \ <--------****** ADD THIS LINE **** -s $MX_SOCKET 

find像这样开始的下一部分:

 daemon $PROGDIR/$prog -P /var/spool/MIMEDefang/$prog.pid \ -m $MX_SOCKET \ $([ -n "$LOOPBACK_RESERVED_CONNECTIONS" ] && echo "-R $LOOPBACK_RESERVED_CONNECTIONS") \ $([ -n "$MX_USER" ] && echo "-U $MX_USER") \ ... follow it down.... $([ "$ALLOW_NEW_CONNECTIONS_TO_QUEUE" = "yes" ] && echo "-q") \ echo "-U defang" \ <----------*** ADD THIS LINE **** -p $SOCKET 

按照此部分的代码在“返回$ RETVAL”行之前。 添加这一行:

 chmod oug+rw /var/spool/MIMEDefang/*.sock 

如果不这样做,postfix将无法与mimedefang进程通信。

退出,保存并添加到您的服务使用chkconfig或任何使你快乐。

最后一步:打开/etc/postfix/main.cf并添加这些行:

 smtpd_milters = unix:/var/spool/MIMEDefang/mimedefang.sock milter_default_action = accept 

现在 – 停止后缀,启动mimedefang,然后重新启动后缀。 检查您的日志有趣的东西,并继续关于您的业务。