
Começando com a seguinte configuração básica para retransmitir todas as mensagens no Postfix para PostMarkApp.com:
#start postmarkapps settings
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:secret:secret (where "secret is your API key")
smtp_sasl_security_options = noanonymous
relayhost = [smtp.postmarkapp.com]:25
#end postmarkapp settings
O problema com isso é que se, por exemplo, algo começar a emitir mensagens de erro, todas elas passarão pelo PostMark e custarão dinheiro.
Uma maneira de contornar relayhost
é configurar sender_dependent_relayhost_maps
e fazer com que determinados endereços sejam mapeados de volta para seudominio.com. Mas isso não funciona em aplicativos da web onde todas as mensagens são enviadas pelo mesmo usuário, mas com cabeçalhos From variados.
Então, como posso obter o mesmo efeito, sender_dependent_relayhost_maps
mas olhando para os cabeçalhos De ou Assunto, em vez de apenas para o usuário?
Responder1
Você precisa do Postfix 2.5 ou posterior.
Então em main.cf
conjunto smtp_header_checks = pcre:/etc/postfix/dont_relay_this_header
.
Por /etc/postfix/dont_relay_this_header
escrito
/^Subject:.*viagra/ REJECT You are not allowed to send out advertisement
Altere o conteúdo do arquivo dont_relay_this_header conforme necessário. Mais informações estão disponíveis noheader_checksmanual.
Responder2
Resolvi isso atacando-o do outro lado, ou seja, não envie mensagens para um determinado destinatário através do relayhost.
Editar /etc/postfix/main.cf
:
#start postmarkapps settings
transport_maps = hash:/etc/postfix/transport
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = static:secret:secret (where "secret is your API key")
smtp_sasl_security_options = noanonymous
relayhost =
#end postmarkapp settings
Editar /etc/postfix/transport
:
[email protected] :
* smtp:[smtp.postmarkapp.com]:25
E corra postmap /etc/postfix/transport
.
Agora eu apenas envio todas as minhas mensagens de erro para[e-mail protegido]e não são enviados via PostMark.