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에서 보낸 사람 만 확보 할 수 있습니다.