
설정은 다음과 같습니다.
mydomain.com이라는 도메인이 있습니다. Gmail을 통한 일반 이메일 계정을 제외하고 모든 것이 자체 서버에 있습니다.
현재 Gmail은 MX 레코드로 설정되어 있습니다.
서버에는 버그 추적기 등을 지원하는 데 필요한 다양한 이메일 별칭도 있습니다. 예를 들어[이메일 보호됨]|/path/to/issuetracker.script
로컬과 사용자의 이메일 클라이언트 모두에서 다음을 허용하는 설정에 어려움을 겪고 있습니다.
- guser1 - Gmail 계정과 로컬 계정이 있습니다
- guser2 - Gmail 계정만 있음
- 버그 - 이슈 트래커를 위해 /etc/aliases에 파이프 별칭이 있습니다.
시나리오
- 메일을 보내다[이메일 보호됨]로컬 호스트(크론 등)에서 Gmail 계정으로 이동해야 합니다.
- 메일을 보내다[이메일 보호됨]로컬 호스트에서
- 메일을 보내다[이메일 보호됨]로컬 문제 추적기 스크립트로 파이프되어야 합니다.
그래서 첫 번째 작업은 교통 지도를 만드는 것이었습니다. 이 시나리오에서는 서버가 MX로 설정되고 guser* 대상 이메일이 Gmail로 전송됩니다. 다음과 같이 Gmail 사용자를 지도에 넣으세요.
[email protected] smtp:gmailsmtp:25
[email protected] smtp:gmailsmtp:25
문제:
- 다음과 같은 확장자를 무시합니다.[이메일 보호됨]
- Append_at_myorigin = no인 경우에만 작동합니다. (yes로 설정하면 Gmail은 다음과의 연결을 거부합니다: E4C7E3E09BA3: to=, Relay=none, Delay=0.05, Delays=0.02/0.01/0.02/0, dsn=4.4.1, status=deferred (gmail-smtp-in.l.google.com[209.85.222.57]:25에 연결: 연결이 거부됨))
- append_at_myorigin이 no로 설정되어 있으므로 수신된 모든 이메일에는 (알 수 없는 발신자)가 포함됩니다.
두 번째 방법은 /etc/aliases에 명시적인 로컬 호스트 별칭을 설정하고 mydomain에서 도메인 전체 전달을 수행하는 것이었습니다. 이 경우에도 로컬 서버를 MX로 설정해야 합니다.
root: root@localhost
# transport
mydomain.com smtp:gmailsmtp:25
문제: * "$myhostname"과 일치하는 도메인에 대한 전송 맵을 생성하면 별칭 파일이 구문 분석되지 않습니다. 따라서 로컬 사용자(또는 데몬)가 다음과 같은 이메일을 보낼 때:
mail -s "testing" root < text.txt
Postfix는 /etc/alias 항목을 무시하고 다음에 매핑됩니다.[이메일 보호됨]Gmail 전송 매핑으로 보내려고 시도합니다.
세 번째 찌르기:
bugs.mydomain.com과 같은 버그에 대한 하위 도메인을 만듭니다. 이 도메인의 MX를 로컬 서버로 설정하고 mydomain.com의 MX는 Gmail 서버에 그대로 둡니다.
문제: * 로컬 계정 문제가 해결되지 않습니다. 따라서 버그 추적기가 보낸 이메일에 응답하면[이메일 보호됨], 로컬 전송을 사용하며 사용자는 이메일을 받지 못합니다.
% postconf -n
alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_at_myorigin = no
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = all
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
mydestination = $myhostname, localhost.$myhostname, localhost
myhostname = mydomain.com
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
myorigin = /etc/mailname
readme_directory = no
recipient_delimiter = +
relayhost =
smtp_tls_cert_file = /etc/ssl/certs/kspace.pem
smtp_tls_enforce_peername = no
smtp_tls_key_file = /etc/ssl/certs/kspace.pem
smtp_tls_note_starttls_offer = yes
smtp_tls_scert_verifydepth = 5
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_use_tls = yes
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
smtpd_recipient_restrictions = permit_mynetworks, reject_invalid_hostname, reject_non_fqdn_sender, reject_non_fqdn_recipient, reject_unknown_sender_domain, reject_unknown_recipient_domain, reject_unauth_destination
smtpd_tls_ask_ccert = yes
smtpd_tls_req_ccert = no
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
tls_random_source = dev:/dev/urandom
transport_maps = hash:/etc/postfix/transport
답변1
가상으로 전환하세요. postfix로 VIRTUAL Docs를 읽어보세요. 그렇게 하면 훨씬 더 많은 제어권을 갖게 됩니다.
메인.cf:
virtual_alias_maps = hash:/etc/postfix/virtual
virtual_mailbox_maps = hash:/etc/postfix/virtualmailboxmap
virtual_mailbox_domains = mydomain.com
virtual_transport = local:
가상, 보유한 모든 사용자를 나열하십시오.
localuser localuser
somealias localuser
guser1 [email protected],guser1
bugs [email protected]
virtualmailboxmap, 모든 로컬 사용자 목록, 오른쪽은 중요하지 않습니다!
localuser rhsunused
guser1 rhsunused
수송:
mydomain.com local:
gmail.mydomain.com smtp:gmailsmtp:25
issuetracker.mydomain.com smtp:[issuetracker ip]:25
나는 사이러스와 함께 이것을 가지고 있었습니다: 로컬 계정을 위한 운송. 이것이 모든 질문에 대한 완전한 답변은 아니지만 시작이 될 수 있다는 것을 알고 있습니다.