
Comenzando con la siguiente configuración básica para transmitir todos los mensajes en Postfix a 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
El problema con esto es que si, por ejemplo, algo comienza a mostrar mensajes de error, todos pasarán por PostMark y costarán dinero.
Una forma de evitarlo relayhost
es configurar sender_dependent_relayhost_maps
y asignar ciertas direcciones a sudominio.com. Pero esto no funciona en aplicaciones web donde todos los mensajes son enviados por el mismo usuario pero con diferentes encabezados De.
Entonces, ¿cómo puedo lograr el mismo efecto sender_dependent_relayhost_maps
pero mirando los encabezados De o Asunto en lugar de simplemente mirar al usuario?
Respuesta1
Necesitas Postfix 2.5 o posterior.
Luego en main.cf
set smtp_header_checks = pcre:/etc/postfix/dont_relay_this_header
.
en /etc/postfix/dont_relay_this_header
escribir
/^Subject:.*viagra/ REJECT You are not allowed to send out advertisement
Cambie el contenido del archivo dont_relay_this_header según sea necesario. Más información está disponible en elcomprobaciones de encabezadomanual.
Respuesta2
Resolví esto atacándolo desde el otro lado, es decir, no envío correo a un determinado destinatario a través de 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
Y correr postmap /etc/postfix/transport
.
Ahora solo envío todos mis mensajes de error a[correo electrónico protegido]y no se envían a través de PostMark.