Postfix가 도메인의 MX 레코드를 무시하는 것 같습니다.

Postfix가 도메인의 MX 레코드를 무시하는 것 같습니다.

내 전용 서버에는 웹사이트를 통해 이메일을 보내기 위해 Postfix가 설치되어 있습니다. 내 고객 중 한 명이 제3자와 이메일을 호스팅하므로 도메인에 MX 레코드가 설정되어 있습니다.

그러나 서버에서 Postfix 이메일을 보낼 때 이메일을 받지 못합니다. 도메인이 서버 자체를 가리키고 있어서 자신에게 메일을 보내려고 하는 것 같은데 서버에는 해당 도메인의 이메일을 처리할 수 있는 것이 아무것도 없습니다. (다른 도메인의 메일 계정은 정상적으로 작동하고 있습니다.)

Postfix가 도메인의 MX 레코드를 사용하여 이메일을 보내도록 하려면 어떻게 해야 합니까?서버는 표준 LAMP 스택을 갖춘 Ubuntu 8.10입니다. Webmin이 설치되어 있고 호스트에서 제공하는 "Matrix"라는 제어판이 있습니다.

편집하다: 내 주소에서 이메일을 보내려고 하면 메일 배달 시스템에서 다음 오류가 포함된 오류 이메일을 받습니다.

<[email protected]>: user unknown. Command output: Invalid user specified.

Final-Recipient: rfc822; [email protected]
Action: failed
Status: 5.1.1
Diagnostic-Code: x-unix; Invalid user specified.

작성된 로그 항목은 다음과 같습니다.

Jan  6 18:06:52 localhost postfix/pickup[29006]: 0329D3F69: uid=33 from=<[email protected]>
Jan  6 18:06:52 localhost postfix/cleanup[30495]: 0329D3F69: message-id=<[email protected]>
Jan  6 18:06:52 localhost postfix/qmgr[22461]: 0329D3F69: from=<[email protected]>, size=611, nrcpt=2 (queue active)
Jan  6 18:06:52 localhost postfix/pipe[30497]: 0329D3F69: to=<[email protected]>, relay=maildrop, delay=0.15, delays=0.1/0/0/0.04, dsn=5.1.1, status=bounced (user unknown. Command output: Invalid user specified. )
Jan  6 18:06:52 localhost postfix/smtp[30498]: 0329D3F69: to=<[email protected]>, relay=gmail-smtp-in.l.google.com[209.85.227.27]:25, delay=0.61, delays=0.1/0.01/0.06/0.45, dsn=2.0.0, status=sent (250 2.0.0 OK 1294337212 o18si30528441wbo.103)
Jan  6 18:06:52 localhost postfix/cleanup[30495]: 868723F75: message-id=<[email protected]>
Jan  6 18:06:52 localhost postfix/bounce[30500]: 0329D3F69: sender non-delivery notification: 868723F75
Jan  6 18:06:52 localhost postfix/qmgr[22461]: 868723F75: from=<>, size=2553, nrcpt=1 (queue active)
Jan  6 18:06:52 localhost postfix/qmgr[22461]: 0329D3F69: removed
Jan  6 18:06:52 localhost postfix/pipe[30497]: 868723F75: to=<[email protected]>, relay=maildrop, delay=0.06, delays=0.01/0/0/0.05, dsn=2.0.0, status=sent (delivered via maildrop service)
Jan  6 18:06:52 localhost postfix/qmgr[22461]: 868723F75: removed

답변1

그래서 저는 직장에서 지루해져서 다음 사항을 언급해야겠다고 생각했습니다. 나는 이전에 이 사이트를 사용한 적이 없으므로 양해해 주십시오.

답변 중 하나에 대해 나중에 다음과 같이 댓글을 달았습니다.

"좋아요, virtual_mailbox_domains = $transport_maps 및 Transport_maps = hash:/etc/postfix/transport가 있습니다. 해당 파일 안에 condorproperties.co.uk maildrop: - 해당 줄을 삭제해야 합니까? – DisgruntledGoat 어제라고 적힌 줄이 있습니다."

그런 다음 다음을 따르십시오.

"@Devdas: 해당 줄을 삭제하고 Postfix를 다시 시작해도 문제가 해결되지 않습니다. "maildrop"을 다른 것으로 변경해야 합니까? – DisgruntledGoat 어제"

첫 번째 질문에 대한 대답은 "예"입니다. /etc/postfix/transport의 해당 라인은 condorproperties.co.uk로 향하는 이메일에 대해 (maildrop을 통해) 로컬 메일 전달을 강제하고 있었습니다. 제거하는 것이 가장 적절합니다. 문제는 단순히 postfix를 다시 시작하는 것만으로는 변경 사항을 적용하기에 충분하지 않다는 것입니다.

문제는 구성 파일에 구성된 맵이 hash:/etc/postfix/transport라는 것입니다. /etc/postfix/transport 파일은 사람이 읽을 수 있는 버전의 파일이며 상응하는 /etc/postfix/transport.db(컴파일된 해시맵) 파일도 가지고 있어야 합니다. 사람이 읽을 수 있는 버전을 해시된 버전으로 컴파일하려면 postmap 명령을 사용합니다. Postfix는 수정 시간을 확인하고 로그 파일에서 /etc/postfix/transport.db가 오래되었다고 큰 소리로 불평해야 합니다. 당신이 해야 할 일은 postmap /etc/postfix/transport를 실행하여 이전에 변경한 내용(condorproperties.co.uk에서 줄 제거)이 적용되도록 하는 것뿐입니다. 사실, postmap 명령을 실행한 후 변경 사항을 적용하기 위해 postfix 다시 로드를 수행할 필요조차 없다고 생각하지만 문제가 되지는 않습니다.

간단히 말해서, postmap /etc/postfix/transport를 실행한 다음 postfix reload를 실행하십시오.

건배.

그런데 로그 파일에 있는 가장 큰 단서는 다음 줄이었습니다: Jan 6 18:06:52 localhost postfix/pipe[30497]: 0329D3F69: to=, Relay=maildrop, Delay=0.15, Delays=0.1/0/0/0.04, dsn=5.1.1, 상태=bounced(사용자를 알 수 없습니다. 명령 출력: 잘못된 사용자가 지정되었습니다. )

중간에 Relay=maildrop이라고 적혀 있는 것을 확인하세요.

답변2

여기에 postconf -n을 붙여넣을 수 있나요?

나는 귀하가 mydestination, virtual_mailbox_domains 또는 maildrop 전송과 함께 Relay_domains 중 하나에 명시적으로 mydomain.co.uk를 나열했다고 확신합니다.

ring0의 생각은 옳았지만 내가 이해한 대로 질문을 잘못 구문 분석했습니다. 목표는 서버의 도메인 중 하나에 대한 이메일을 다른 곳으로 보내는 것이지만 Postfix에 그대로 남아 있습니다.

모든 메일 서버에는 로컬 구성이 DNS를 재정의합니다. 따라서 MTA가 DNS를 확인하지 않는 경우 로컬 구성에 도메인이 있는 것입니다.

답변3

postfix메일을 전송하기 위해 다음에 접속할 서버를 찾기 위해 표준을 따르고 도메인 이름의 MX 항목 확인을 수행합니다.

  • 도메인 이름(영역)의 TTL로 인해 문제가 있을 수 있습니다. 예를 들어 등록 기관에서 MX 항목을 업데이트했지만 해당 도메인의 TTL로 인해 이전에 확인된 항목이 도메인 이름 서버의 캐시에 유지됩니다.

  • 또한 대상 서버의 도메인 이름은 다음과 같이 선언되지 않을 수 있습니다.현지의, 보내는 서버가 해당 대상 서버( in ) /var/log/mail.log를 통해 릴레이(스팸)를 시도하는 것을 고려하여 서버가 메일을 거부하도록 만듭니다(예: 로그 참조 ) .mydestination/etc/postfix/main.cf

dig +nocmd mydomain.tld mx +noall +answer관심 있는 도메인의 TTL을 포함하여 쉽게 읽을 수 있는 정보를 얻으 세요 .

답변4

또한 메일을 보내려는 원격 도메인에 대해 어떻게든 정의된 사용자 정의 전송 또는 전송 맵이 없는지 확인하십시오.

관련 정보