접미사 : 봉투 발신자가 아닌 보낸 사람 : 메일 헤더를 기준으로 릴레이 호스트 선택


9

SASL과 sender_dependent_relayhost_mapsMySQL 테이블을 사용하여 Mandrill을 통해 이메일을 릴레이하도록 Postfix를 성공적으로 설정했습니다. 따라서 다른 발신자가 자신의 Mandrill 사용자 이름과 API 키를 사용하여 Mandrill에 연결할 수 있습니다.

지금까지는 좋았지 만 전자 메일 서비스 공급자를 사용하고 메시지 봉투의 보낸 사람이 세 명의 사용자 모두에 대해 "mailer@infusionmail.com"으로 설정되어 있으며 실제 사용자의 전자 메일을 포함하는 유일한 사용자는 세 명입니다. address는 From : email 헤더에 있습니다.

엄격하게 제어되는 특정 전자 메일 주소로 보낸 메일 만 전달할 때 From : 전자 메일 헤더 를 사용하는 보안 (또는 부족)에 만족 하지만 어떻게 할 수 있는지에 대한 제안에 정말 감사합니다. From : 헤더 값을 기반으로 릴레이 호스트를 지정하십시오 . 봉투 값을 보낸 사람 필드와 동일하게 설정하는 방법이 있습니까? 아니면 다른 방법이 있습니까?


세 명의 사용자가 동일한 SASL 자격 증명을 사용 했습니까?
masegaloeh

아니요, 각기 다른 SASL 자격 증명이 있습니다. 메일 클라이언트에서 직접 메일을 발송하는 경우 발신 주소를 기준으로 메일 릴레이 및 SASL 자격 증명을 올바르게 식별합니다. infusionmail.com ESP를 사용하면 발신자가 동일하고 발신인 : 이메일 헤더 만 다르기 때문에이 단계에서는 발신자를 기반으로 동일한 조회를 수행 할 수 없습니다.
Adrian Savage

답변:


5

postfix mailing-list의이 스레드를 기반으로 : sendmail (1)을 통해 도입 된 모든 메일에 대해 다른 전송 이 가능합니다. 불행하게도 당신은 단지 두 개의 테이블에 의존 할 수 sender_dependent_relayhost_mapssmtp_sasl_password_maps. 수정이 필요합니다 master.cf. 아이디어는 header_checks이메일을 다른 전송으로 라우팅 하는 데 사용 됩니다. 그런 다음 각 전송에서 독립 자격 증명과 릴레이 호스트를 사용하는 smtp 클라이언트를 정의합니다.

먼저 main.cf 및 pcre 테이블에서 header_checks를 정의하십시오.

#main.cf
header_checks = pcre:/etc/postfix/header_dependent_relay

#/etc/postfix/header_dependent_relay

/^From:.*specialsender1\@example\.com/       smtp1:[host1.example.com]
/^From:.*specialsender2\@example\.com/       smtp2:[host2.example.com]
/^From:.*specialsender3\@example\.com/       smtp3:[host3.example.com]

좋습니다. 이제 master.cf 에서 전송을 설정했습니다 smtp1.smtp2smtp3

#master.cf
smtp1    unix  -       -       -       -       10       smtp
    -o smtp_sasl_password_maps=hash:/etc/postfix/smtp1.relay
smtp2    unix  -       -       -       -       10       smtp
    -o smtp_sasl_password_maps=hash:/etc/postfix/smtp2.relay
smtp3    unix  -       -       -       -       10       smtp
    -o smtp_sasl_password_maps=hash:/etc/postfix/smtp3.relay

파일의 smtpX.relay내용이 비슷합니다 (예 :

[hostX.example.com]   userX:passwordX

기권:


0

이것은 한 번의 변경으로 나를 위해 일했습니다. action "FILTER"를 header_dependent_relay 파일에 추가해야 합니다.

#/etc/postfix/header_dependent_relay

/^From:.*specialsender1\@example\.com/       FILTER smtp1:[host1.example.com]
/^From:.*specialsender2\@example\.com/       FILTER smtp2:[host2.example.com]
/^From:.*specialsender3\@example\.com/       FILTER smtp3:[host3.example.com]

http://www.postfix.org/header_checks.5.html을 참조 하십시오

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.