Postfix,SPF和Perl:警告:在读取input属性名称时,私密/策略的提前结束input

我遵循本指南( http://www.thenoccave.com/2013/05/08/centos-6-postfixspf-checking/ ),但在maillog出现以下错误:

 May 8 22:15:13 ip-172-31-15-65 postfix/smtpd[1999]: warning: premature end-of-input on private/policy while reading input attribute name May 8 22:15:14 ip-172-31-15-65 postfix/spawn[2037]: warning: command /usr/bin/perl exit status 2 May 8 22:15:14 ip-172-31-15-65 postfix/smtpd[1999]: warning: premature end-of-input on private/policy while reading input attribute name May 8 22:15:14 ip-172-31-15-65 postfix/smtpd[1999]: warning: problem talking to server private/policy: Connection reset by peer 

这是main.cf一部分

 smtpd_recipient_restrictions = reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_recipient_domain, permit_sasl_authenticated, reject_unauth_destination, permit_inet_interfaces, check_policy_service unix:postgrey/socket, check_policy_service unix:private/policy policy_time_limit = 3600s 

这是master.cf一部分

 policy unix - nn - - spawn user=nobody argv=/usr/bin/perl /usr/lib/postfix-policyd-spf-perl 

我也试过了

  check_policy_service unix:postgrey/socket, check_policy_service unix:private/policy, policy_time_limit = 3600s 

这里是完整的master.cf 。

postfix check不报告任何错误。

有一个类似的问题,但它是Debian和Python。

CentOS 6.6,postfix-policyd-spf-perl 2.01。

我有错误的Perl程序的path。 我很早以前就安装了SPF,并注意到了,所以当跟随指南的时候,我没有注意到那一行,但是指向了旧的位置。 我改变命令的path

 /usr/lib/postfix/postfix-policyd-spf-perl 

至less可以在日志中提到“找不到文件”。