Ok, trabalhei como desejava usando virtual_alias_maps.
Eu escrevi sobre isso aqui mas basicamente você tem que usar virtual_alias_maps = hash:/path/to/myblacklist.txt
e ele vai fazer o truque.
Estou tentando impedir que meu servidor do CentOS 6.5 envie e-mails para uma determinada lista de destinatários. ( [email protected]
, [email protected]
e assim por diante).
Eu configurei o postfix assim:
/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
O banco de dados é criado por meio de:
postmap hash:recipient_access
o postfix é recarregado
service postfix reload
php.ini é:
sendmail_path = /usr/sbin/sendmail -t -i
Infelizmente isso não parece funcionar. Se eu usar o PHP mail () para enviar um email para [email protected]
, ele será entregue como sempre.
O que estou perdendo?
Ok, trabalhei como desejava usando virtual_alias_maps.
Eu escrevi sobre isso aqui mas basicamente você tem que usar virtual_alias_maps = hash:/path/to/myblacklist.txt
e ele vai fazer o truque.
É porque smtpd_*_restrictions
se aplica apenas aos e-mails recebidos pelo daemon smtpd
por meio de uma transação SMTP
. Os emails enviados usando o comando sendmail
são enfileirados no comando maildrop
queue by postdrop
, que é selecionado por pickup
e alimentado diretamente para cleanup
.
Você não pode restringir os destinatários dos e-mails enviados pelo comando sendmail
.
A única solução para esse problema é forçar seus aplicativos a enviar email somente por meio da transação smtp
.
Você pode usar um script alternativo do sendmail como msmtp para transportar seus mail()
mails pelo smtp.
Após instalar o conjunto sendmail_path
no seu arquivo php.ini:
sendmail_path = /usr/local/bin/msmtp -C /etc/msmtprc -t -i
Você pode abusar de smtp_generic_maps
para desviar este e-mail. Ao contrário das outras directivas que mencionou, esta opera no correio a enviar.
Embora não seja capaz de soltá-lo, ele pode enviá-lo para uma caixa de correio diferente, onde você poderá executar a ação apropriada (como suspender o cliente que enviou o e-mail).
Em main.cf
você teria:
smtp_generic_maps = hash:/etc/postfix/generic
E em /etc/postfix/generic
:
[email protected] [email protected]
[email protected] [email protected]
Isso deve enviar todos os e-mails para sua caixa de correio de abuso para você agir.