Estamos usando o postfix 2.7 e o SMTPD personalizado (com base no qpsmtpd) em uma configuração altamente personalizada para filtragem de spam. Temos um novo requisito para filtrar retornos gerados pelo postfix através de nosso processo qpsmtpd personalizado (não tanto para filtragem de conteúdo, mas para processar esses retornos de acordo).
Nossa configuração atual parece (em parte) assim:
main.cf (somente personalizações mostradas):
2526 inet n - - - 0 cleanup
pickup fifo n - - 60 1 pickup
-o content_filter=smtp:127.0.0.2
Nosso smtpd injeta mensagens para o postfix na porta 2526, falando diretamente com o daemon de limpeza. E o comando custom pickup instrui o postfix a entregar todos os e-mails gerados localmente (do cron, nagios ou outros scripts personalizados) ao nosso smtpd personalizado.
O problema é que essa configuração não afeta as mensagens de devolução geradas pelo postfix, pois elas não passam pelo daemon de coleta.
Eu tentei adicionar a mesma opção content_filter aos comandos do tipo bounce daemon, mas não parece ter nenhum efeito:
bounce unix - - - - 0 bounce
-o content_filter=smtp:127.0.0.2
defer unix - - - - 0 bounce
-o content_filter=smtp:127.0.0.2
trace unix - - - - 0 bounce
-o content_filter=smtp:127.0.0.2
Para referência, aqui está o meu arquivo main.cf , também:
biff = no
# TLS parameters
smtpd_tls_loglevel = 0
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
smtp_tls_security_level = may
mydestination = $myhostname
alias_maps = proxy:pgsql:/etc/postfix/dc-aliases.cf
transport_maps = proxy:pgsql:/etc/postfix/dc-transport.cf
# This is enforced on incoming mail by QPSMTPD, so this is simply
# the upper possible bound (also enforced in defaults.pl)
message_size_limit = 262144000
mailbox_size_limit = 0
# We do our own message expiration, but if we set this to 0, then postfix
# will try each mail delivery only once, so instead we set it to 100 days
# (which is the max postfix seems to support)
maximal_queue_lifetime = 100d
hash_queue_depth = 1
hash_queue_names = deferred, defer, hold
Eu também tentei adicionar a opção internal_mail_filter_classes para main.cf, mas também para afetar:
internal_mail_filter_classes = bounce,notify
Estou aberto a qualquer sugestão, incluindo a manipulação do nosso atual filtro de filtragem de conteúdo de uma maneira diferente.
Se não está claro o que estou perguntando, por favor me avise, e posso tentar esclarecer.