[server] Postfix에서 발신자 주소를 “logged-in-user@example.org”로 설정하는 방법은 무엇입니까?

SMTP AUTH (포트 587의 STARTTLS)를 사용하여 Postfix 서버를 설정했습니다. 모든 사용자는 “example.org”도메인에 있습니다. 발신자 주소를 “logged-in-user@example.org”로 설정하고 싶습니다.

나는 이것이 main.cf 옵션으로 달성 할 수 있다는 것을 배웠다.

smtpd_sender_restrictions = reject_sender_login_mismatch, ...
smtpd_sender_login_maps = hash:/etc/postfix/smtpd_sender_login_maps

login_maps 파일을 다음과 같이 사용하십시오.

a@example.org a
b@example.org b
c@example.org c
...

( SMPT AUTH를 사용하여 발신자 주소 스푸핑 차단 참조 )하지만 새 사용자가있을 때마다 login_maps 파일을 편집해야합니다. 유연한 매핑이 필요하지 않습니다. 항상 “logged-in-user@example.org”여야합니다. 더 쉬운 옵션이 있습니까?



답변

먼저, 명령을 입력하고 그 안에 postconf -m줄을 찾아 Postfix 설치가 pcre를 지원하는지 확인 pcre하십시오. pcre 지원이 확인되면 다음과 같이 할 수 있습니다.

/etc/postfix/login_maps.pcre:

/^(.*)@example\.org$/   ${1}

에서 main.cf:

smtpd_sender_login_maps = pcre:/etc/postfix/login_maps.pcre

이것은 잘 작동합니다.


답변

다른 답변에 언급 된 정규식은 이메일 주소의 사용자 부분과 일치합니다 ( login-in-user @ example.org) . 다음은 몇 가지 추가 정보입니다.

전체 이메일 주소를 사용자 이름으로 사용하려면 다음 정규식을 사용하십시오 (예 : /etc/postfix/login_map .

/^(.*)$/   ${1}

즉, 사용자 이름은 항상 전체 이메일 주소 ( login-user@example.org )입니다. 기존의 다른 사용자 이름은 해당 주소에서 보낼 수 없으며 매번 추가 Postfix 구성 파일을 업데이트 할 필요가 없습니다. 사용자를 추가하십시오.

여러 도메인이 구성된 서버에서 사용될 수 있습니다. 사용자 john.doe@example.com 은 해당 주소에서만 보낼 수 있지만 john.doe@example.org (다른 사용자와 이메일, 다른 사람) 는 보낼 수 없습니다 . 사용자 이름 john.doe 는 모호합니다.

또한 구성에 따라이 파일을 가리키는 smtpd_sender_login_maps 설정이 master.cf 대신 master.cf에있을 수 있습니다. 공식 Dovecot 문서에는 다음과 같은 예가 있습니다. (SASL / 제출을 사용하는 경우).

submission inet n - n - - smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_sasl_type=dovecot
  -o smtpd_sasl_path=private/auth
  -o smtpd_sasl_security_options=noanonymous
  -o smtpd_sasl_local_domain=$myhostname
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
  -o smtpd_sender_restrictions=reject_sender_login_mismatch
  -o smtpd_recipient_restrictions=reject_non_fqdn_recipient,reject_unknown_recipient_domain,permit_sasl_authenticated,reject

이 예에서는 올바른 파일을 가리키고 형식으로 정규식 또는 (더 나은) pcre를 사용하도록 설정을 조정해야합니다. 특히 “가상”이라는 파일이 이미 다른 목적으로 사용 된 경우 (예 : : 공식 Postfix 예제에 표시된 virtual_alias_maps의 경우 ) 로그인 매핑에 다른 파일을 사용해야합니다.

에서:

smtpd_sender_login_maps=hash:/etc/postfix/virtual

에:

smtpd_sender_login_maps=pcre:/etc/postfix/login_map


답변

http://www.akadia.com/services/postfix_uce.html 과 같이 헤더에 regexp 조합을 사용할 수 있습니까 ? 그런 다음 [*@example.org]와 같은 regexp와 결합하여 example.org에서 보낸 사람 만 확보 할 수 있습니다.


답변