web-dev-qa-db-ja.com

dsn = 5.6.0、stat =電子メール転送時のデータ形式エラー

Linuxホスト(CentOS)にはいくつかの共有ドメインがあり、そのうちの1つはexample.comです(このメッセージ全体で使用される偽のホスト名とユーザー名);を使用しております /etc/mail/virtusertable example.comへのすべてのメールを「exmpl」ユーザーに配信し、~exmpl/.procmailrc必要に応じてメールを転送します。このメソッドにより、exmplは独自の転送を維持できますが、/ etc/mail/aliasesでは維持できません。実際、virtusertableにはexample.comなどの既知の受信者がいて、不明な受信者へのメールを拒否します。私たちはずっと前にその教訓を学びました。

ただし、この方法で転送されたメールは失敗していました。

Apr 30 21:33:30 bogus sendmail[25645]: r412XUQ8025645: [email protected], ctladdr=exmpl (504/504), delay=00:00:00, xdelay=00:00:00, mailer=relay, pri=30965, relay=[127.0.0.1] [127.0.0.1], dsn=5.6.0, stat=Data format error

「person」はbogus.orgの有効なユーザーであり、実際にはbogus.orgがexample.comと同じマシンのメインドメインであるため、これは非常に奇妙に思えました。

どうすればこれを修正できますか?

1
whbjr

他の多くの人は、/etc/hostsの「localhost」エントリを修正したり、適切なDNSエントリを設定したりすることで、これを解決しています。私たちはそれをしました、そしてそれは私たちの問題を解決しませんでした。

ついにこれに気づきました:ctladdr=exmpl正しく配信されたメールの場合、これらのログエントリは、完全な電子メールアドレスとしてそれを示しました。 ctladdr=<[email protected]>欠けていたのは、virtusertableのこの重要なエントリでした。

[email protected] exmpl

私にはこれがvirtusertableの「逆方向」の使用のように見えるので、これを完全に理解しているとは主張しません(これは私の質問としてカウントされます!)。ただし、上記のように転送されたメールは現在機能しています。

May  6 21:06:40 bogus sendmail[1482]: r4726ejj001480: to=<[email protected]>, ctladdr=<[email protected]> (504/504), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=62862, dsn=2.0.0, stat=Sent
2
Joel Coel

通常、ポート25でMXサーバーにtelnetで接続し、手動のSMTP会話を開始すると、問題がより明確になります。

上記のctladdr=exmplの例では、これをMAIL FROMとして入力すると、MXサーバーはドメインが存在しないことを通知するため、メールを受け入れることができません。 somedomain.comがDNSで定義され、Webトラフィックに使用されるという問題が発生しましたが、Apacheはメールを[email protected]として送信しようとします。手動でSMTP会話を行うと、MXサーバーが送信できないことがわかります。 findwww.somedomain.com

解決策は、このサブドメインにAまたはCNAMEレコードを追加することです。

1
Tom