私が管理しているメールサーバ(MTA)にはPostfixを使用しています。
長らくCentOS上でPostrfixを使用してきたのですが、残念ながらCentOSが更新されないので、Ubuntuに移行することにしました。RedHat系からDebian系に変わるので、色々と違いがありました。10年以上前にはDebianも使用していたことがありますが、時の彼方のバージョンでの経験は役に立ちません(T_T)
今回、user unknownのエラーで悩まされました。しっかりと!確かに!間違いなく!設定済みのアカウントでuser unknownのエラーが発生するのです。
こんな感じで!!
Recipient address rejected: User unknown in local recipient table
ところで、UbuntuでのPostfixのデフォルトのmain.cfはCentOSの物と比較すると非常にシンプルです。行数的にもかなり少ないんです。これに引っ掛かりました。
上記のエラーでググると
main.cfで『mydestination』と、『virtual_mailbox_domains』の両方にドメインを記述するとこのエラーが発生するとあります。でも、何度、main.cfを見直しても、その両方は書いていないんです!!
そこで、ふと思い浮かんだのがpostconfというコマンドです。Postfixを使用された方ならご存知かと思います。Postfixのメーリングリストで質問する際にはpostconfの結果を書いておくと、望む回答がより早くもらえたりします。
で、postconfを実行すると・・・・main.cfに記述されるよりも遥かに多い行数が出力されました。その結果を確認すると、、、ありました。『mydestination』と、『virtual_mailbox_domains』の両方にドメインが記述されていたのです。
つまり、main.cfに記述されていない項目はデフォルト値で設定されていたのです。そのため記述した覚えのない、『mydestination』と、『virtual_mailbox_domains』にドメインが設定されていたのです。
早速、修正しPostfixを再起動すると
Recipient address rejected: User unknown in local recipient table
は、出なくなりました。
CentOSに比べて少なすぎる行数に、もっと早く着目すれば良かったです(^_^;
ちなみに下の画像はHyper-V上にインストールしたUbuntu上のPostfixのデフォルトmain.cfです。少ないでしょ!!