我尝试使用Postfix地址validation服务器 ,但是我无法使其工作。
这里是我的main.cf文件的内容,由postconf -n命令生成。 我标记了我修改自己的四行。 其他configuration线来自一个新的debian wheezy安装:
address_verify_default_transport = direct_smtp # added by myself address_verify_map = btree:/var/lib/postfix/verify_cache # added by myself address_verify_relayhost = # added by myself alias_database = hash:/etc/aliases alias_maps = hash:/etc/aliases append_dot_mydomain = no biff = no config_directory = /etc/postfix inet_interfaces = all mailbox_size_limit = 0 mydestination = fake.example.net, localhost.example.net, localhost myhostname = fake.example.net mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 myorigin = /etc/mailname readme_directory = no recipient_delimiter = + relayhost = smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_unknown_recipient_domain, reject_unverified_recipient # added by myself smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
validation服务器已启动。 我用netstat -l -p | grep verify查了一下 netstat -l -p | grep verify哪些产生:
unix 2 [ ACC ] STREAM LISTENING 1851248 31291/master private/verify
然而,validation服务器从来没有被调用:当我发送一个电子邮件到我控制的MX服务器的域,我可以看到该MX服务器的日志,该电子邮件是直接发送正确的发件人地址,而不是“ double-bounce@$myorigin “,因为它应该是 。 我也可以看到没有创build/var/lib/postfix/verify_cache文件。
以下是我从发送服务器看到的内容:
Dec 18 16:43:07 fake postfix/pickup[19544]: 134A96220474: uid=0 from=<root> Dec 18 16:43:07 fake postfix/cleanup[19633]: 134A96220474: message-id=<[email protected]> Dec 18 16:43:07 fake postfix/qmgr[31295]: 134A96220474: from=<[email protected]>, size=447, nrcpt=1 (queue active) Dec 18 16:43:07 fake postfix/smtp[19635]: 134A96220474: to=<[email protected]>, relay=fake2.example.net[yyy.yyy.yyy.yyy]:25, delay=0.6, delays=0.09/0/0.13/0.38, dsn=4.2.0, status=deferred (host fake2.example.net[yyy.yyy.yyy.yyy] said: 450 4.2.0 <[email protected]>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/example.net.html (in reply to RCPT TO command))
那么,我错过了什么使Postfix地址validation工作?
你注意到你的maillog片段
Dec 18 16:43:07 fake postfix/pickup[19544]: 134A96220474: uid=0 from=<root> Dec 18 16:43:07 fake postfix/cleanup[19633]: 134A96220474: message-id=<[email protected]> Dec 18 16:43:07 fake postfix/qmgr[31295]: 134A96220474: from=<[email protected]>, size=447, nrcpt=1 (queue active) Dec 18 16:43:07 fake postfix/smtp[19635]: 134A96220474: to=<[email protected]>, relay=fake2.example.net[yyy.yyy.yyy.yyy]:25, delay=0.6, delays=0.09/0/0.13/0.38, dsn=4.2.0, status=deferred (host fake2.example.net[yyy.yyy.yyy.yyy] said: 450 4.2.0 <[email protected]>: Recipient address rejected: Greylisted, see http://postgrey.schweikert.ch/help/example.net.html (in reply to RCPT TO command))
有没有smtpd字。
旁注:在你的maillog,电子邮件进入后缀取货过程。 在后缀体系结构概述中 ,电子邮件将有三种方式进入postfix:smtpd,qmqpd或pickup。
收件人validation仅在通过smtpdinput电子邮件时起作用(您只能在smtpd_ * _restriction中定义参数reject_unverified_recipient )。
对于我的情况,邮件从外部服务器通过smtpd进入,所以它会触发validation守护进程。