我试图阻止我的 CentOS 6.5 服务器向特定收件人列表发送电子邮件。([email protected]
,[email protected]
等等)。
我已经像这样配置了 Postfix:
/etc/postfix/main.cf:
smtpd_recipient_restrictions = check_recipient_access hash:/etc/postfix/recipient_access
在/etc/postfix/recipient_access中:
[email protected] REJECT
[email protected] REJECT
DB 通过以下方式构建:
postmap hash:recipient_access
postfix 已重新加载
service postfix reload
php.ini 是:
sendmail_path = /usr/sbin/sendmail -t -i
不幸的是,这似乎不起作用。如果我使用 PHP mail() 向 发送邮件[email protected]
,邮件会像往常一样送达。
我错过了什么?
答案1
因为只适用于守护进程通过事务
smtpd_*_restrictions
接收的邮件,使用命令提交的邮件会由命令排队,由命令直接拾取并发送给守护进程。smtpd
SMTP
sendmail
maildrop
postdrop
pickup
cleanup
您不能限制通过
sendmail
命令提交的邮件的收件人。
smtp
解决此问题的唯一方法是强制您的应用程序仅通过事务发送邮件。
答案2
您可以使用其他 sendmail 脚本,例如邮件传输协议通过 smtp传输您的
mail()
邮件。安装后
sendmail_path
在 php.ini 文件中设置:sendmail_path = /usr/local/bin/msmtp -C /etc/msmtprc -t -i
答案3
您可能能够滥用该指令smtp_generic_maps
来转移此邮件。与您提到的其他指令不同,该指令针对外发邮件进行操作。
虽然它无法删除它,但可以将其发送到不同的邮箱,然后您可以在那里对其采取适当的措施(例如暂停发送邮件的客户)。
你main.cf
会拥有:
smtp_generic_maps = hash:/etc/postfix/generic
并且/etc/postfix/generic
:
[email protected] [email protected]
[email protected] [email protected]
这会将所有此类邮件发送到您的滥用邮箱,以便您采取行动。
答案4
好的,我使用 virtual_alias_maps 按照我的要求解决了问题。
我在这里写了这篇文章但基本上你必须使用virtual_alias_maps = hash:/path/to/myblacklist.txt
,它就会起作用。