Postfix - 특정 헤더 값이 있는 메시지를 Relayhost에서 제외하시겠습니까?

Postfix - 특정 헤더 값이 있는 메시지를 Relayhost에서 제외하시겠습니까?

Postfix의 모든 메시지를 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

문제는 예를 들어 무언가가 오류 메시지를 뱉어내기 시작하면 모두 PostMark를 거쳐 비용이 든다는 것입니다.

우회하는 한 가지 방법 은 특정 주소를 yourdomain.com으로 다시 매핑하도록 relayhost설정하는 것입니다 . sender_dependent_relayhost_maps그러나 이는 모든 메시지가 동일한 사용자에 의해 전송되지만 보낸 사람 헤더가 다양한 웹 앱에서는 작동하지 않습니다.

sender_dependent_relayhost_maps그렇다면 단순히 사용자 대신 From 또는 Subject 헤더를 보는 것과 동일한 효과를 어떻게 얻을 수 있습니까 ?

답변1

Postfix 2.5 이상이 필요합니다.

main.cf그런 다음 세트 로 smtp_header_checks = pcre:/etc/postfix/dont_relay_this_header.

/etc/postfix/dont_relay_this_header서면 으로

/^Subject:.*viagra/  REJECT You are not allowed to send out advertisement

필요에 따라 dont_relay_this_header 파일의 내용을 변경하십시오. 자세한 내용은 다음에서 확인할 수 있습니다.header_checks수동.

답변2

나는 다른 쪽에서 공격하여 이 문제를 해결했습니다. 즉, 릴레이 호스트를 통해 특정 수신자에게 메일을 보내지 않는 것입니다.

편집하다 /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

편집하다 /etc/postfix/transport:

[email protected] :
* smtp:[smtp.postmarkapp.com]:25

그리고 실행하세요 postmap /etc/postfix/transport.

이제 모든 오류 메시지를 다음으로 보냅니다.[이메일 보호됨]PostMark를 통해 전송되지 않습니다.

관련 정보