Postfix는 Mydomain에서 보낼 수 없습니다. - 타사 도메인에만 보낼 수 있습니다.

Postfix는 Mydomain에서 보낼 수 없습니다. - 타사 도메인에만 보낼 수 있습니다.

그래서 Ubuntu 서버를 설정했고 postfix를 사용하여 PHP를 통해 메일을 보내고 싶습니다.

서버 호스트: example.com

서버가 이메일을 보낼 때[이메일 보호됨], 오류가 발생합니다. 다른 주소로 보내는 경우([이메일 보호됨]),좋은 결과.

alias_database = hash:/etc/aliases
alias_maps = hash:/etc/aliases
append_dot_mydomain = no
biff = no
config_directory = /etc/postfix
inet_interfaces = localhost
inet_protocols = all
mailbox_size_limit = 0
mydestination = example.com, localhost.localdomain, , localhost
myhostname = example.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_session_cache_database = btree:${data_directory}/smtp_scache
smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated 
defer_unauth_destination
smtpd_tls_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file = /etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtpd_use_tls = yes

PHP를 통해 example.com 주소로 이메일을 보내면 다음 오류가 발생합니다.

exception 'Zend\Mail\Protocol\Exception\RuntimeException' with message '5.1.1 <[email protected]>: Recipient address rejected: User unknown in local recipient table

PHP를 통해 AnyOtherDomain.com에 메일을 보내면 오류가 없습니다.

example.com의 실제 메일은 타사 서버에서 처리됩니다. 모든 SPF/DKIM 레코드가 제자리에 있으므로 제3자 도메인으로 전송되는 한 전송이 제대로 작동합니다.

분명히 이것은 내가 아직 알아 내려고 노력하는 설정입니다.

편집하다:

메일 로그를 더 자세히 살펴보면 다음과 같은 사실을 발견했습니다.

Apr  6 13:37:57 somename postfix/local[25416]: 3625CE2EB7: to=<[email protected]>, relay=local, delay=0.03, delays=0.02/0.01/0/0.01, dsn=5.1.1, status=undeliverable (unknown user: "support")
Apr  6 13:42:29 xxxxx postfix/smtpd[25501]: connect from localhost[127.0.0.1]
Apr  6 13:42:29 xxxxx postfix/smtpd[25501]: NOQUEUE: reject: RCPT from localhost[127.0.0.1]: 550 5.1.1 <[email protected]>: Recipient address rejected: User unknown in local recipient table; from=<[email protected]> to=<[email protected]> proto=ESMTP helo=<localhost>
Apr  6 13:42:29 xxxxx postfix/smtpd[25501]: disconnect from localhost[127.0.0.1]

그래서 서버가 이메일 주소 대신 사용자에게 메시지를 보내려고 하는 것 같아요...

답변1

이것이 작동하지 않는 이유는 다음과 같이 설정했기 때문입니다.

MyDomains에는 example.com이 포함됩니다.

~에서수동

mydestination 매개변수는 다른 시스템으로 전달하지 않고 이 시스템에서 로컬로 전달할 도메인을 지정합니다. 기본값은 머신 자체가 메일을 수신하는 것입니다.

범인은 다음 줄입니다.

mydestination = example.com, localhost.localdomain, , localhost

다음으로 업데이트하세요.

localhost.localdomain, localhost

기본적으로 PostFix는 example.com의 모든 메일을 보내는 대신 처리하려고 시도합니다.

관련 정보