Centos

Postfix、SPF 和 Perl:警告:在讀取輸入屬性名稱時,私有/策略上的輸入過早結束

  • May 8, 2016

我遵循了本指南(http://www.thenoccave.com/2013/05/08/centos-6-postfix-spf-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  -       n       n       -       -       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 程序的路徑弄錯了。我很久以前安裝了 SPF 並註釋掉了,所以在按照指南進行操作時,我取消了該行的註釋,但它指向了舊位置。我將命令的路徑更改為

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

它至少可以在日誌中提到“找不到文件”。

引用自:https://serverfault.com/questions/775535