PostfixはドメインのMXレコードを無視しているようです

PostfixはドメインのMXレコードを無視しているようです

私の専用サーバーには、Web サイト経由で電子メールを送信するための Postfix がインストールされています。クライアントの 1 社は電子メールをサードパーティでホストしているため、ドメインに 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

仕事で退屈だったので、次のことを書こうと思いました。このサイトはこれまで一度も使ったことがないので、ご容赦ください。

あなたは、回答の 1 つに対して、後で次のようにコメントしました。

「OK、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 を再起動するだけでは不十分であることです。

問題は、設定ファイルで設定されているマップがハッシュ:/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 をリロードします。

乾杯。

ちなみに、ログファイル内の大きな手がかりは次の行でした: 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、status=bounced (user unknown. Command output: Invalid user provided. )

途中で、relay=maildrop と書かれているのに気づきましたか?

答え2

ここに postconf -n を貼り付けていただけますか?

おそらく、mydomain.co.uk は、maildrop のトランスポートを使用して、mydestination、virtual_mailbox_domains、または relay_domains のいずれかに明示的にリストされているはずです。

ring0 の考えは正しいのですが、私の理解では、質問の解釈が間違っています。目標は、サーバー上のドメインの 1 つ宛ての電子メールを別の場所に送ることですが、その電子メールは Postfix に残ります。

どのメール サーバーでも、DNS よりも優先されるローカル構成があります。そのため、MTA が DNS を参照していない場合は、ローカル構成にドメインがあります。

答え3

postfix標準に従ってドメイン名の MX エントリ解決を実行し、メールを送信するために次に接続するサーバーを特定します。

  • ドメイン名 (ゾーン) の TTL が原因で問題が発生する場合があります。たとえば、レジ​​ストラで MX エントリを更新したが、そのドメインの TTL により、以前に解決されたエントリがドメイン ネーム サーバーのキャッシュに残る場合があります。

  • また、ターゲットサーバーのドメイン名は次のように宣言されていない可能性があります。地元/var/log/mail.log、送信サーバーがターゲット サーバー ( ) 経由でリレー (スパム) しようとしていると見なして、サーバーがメールを拒否するようになります (ログを参照、例: mydestination) /etc/postfix/main.cf

dig +nocmd mydomain.tld mx +noall +answer関心のあるドメインの TTL などの情報を簡単に読み取れるようにしてください。

答え4

また、メールを送信する予定のリモート ドメインに対して、カスタム トランスポートまたはトランスポート マップが何らかの形で定義されていないことも確認してください。

関連情報