24時間365日フルマネージドホスティングサービスのデイーネット

  • HOME
  •  
  • 技術情報ブログ
  •  
  • Postfixの『Recipient address rejected: User unknown in local recipient table』で15分ほどハマった話

Postfixの『Recipient address rejected: User unknown in local recipient table』で15分ほどハマった話

Tヨシダです。
9月は夏休みがあるので、楽しみです。

またもや広島方面に出かけて、お好み焼き食べてくる予定です。

あんしんクラウドメールフィルターの動作検証で、そこにメールを投げつけるためのメールサーバが必要になり、AWSのAmazonLinux2でpostfix+dovecot環境を作った際に、Postfixのエラーで15分ほどハマった話です。
ちなみにT3が出た所なので、T3でAmzonLinux2で建てました。

ちょっと安くなりましたね。

AmazonLinux2について

  • タイムゾーンと、ロケールは日本のものに変えないといけない。
  • ファイアウォールは無効になっている模様。
  • 最低構成の模様(パッケージグループがAWS Toolsと、Development Toolsのみ)。
  • 使用感はCentOS7と変わらない。

ということで、今後はCentOS7ではなく、サーバが必要な時は、こっちを重点的に使おうかなと思った次第。

環境

  • AmazonLinux2でt3.micro
  • まず『sudo yum update -y』でアップデート
  • タイムゾーンは東京、ロケールはja_JP.UTF-8
  • Postfixは、プリインストールを利用(2.10.1)。
  • Dovecotは『yum install dovecot』で(2.2.10)。
  • バーチャルホスト設定でSMTP+IMAP環境を作った。

今回の問題

外部からメールを受信が出来ない。
その時に出ていたエラーログが以下。

Recipient address rejected: User unknown in local recipient table

問題が発生した時のメールログ

  • $送信元ホスト$.jp・・・送信元ホストのFQDN
  • XXX.XXX.XXX.XXX・・・送信元IPアドレス
  • $送信先ホスト$.jp・・・送信先ホストのFQDN
  • user@$送信元ドメイン$.jp・・・メールの送信元アドレス
  • user@$送信先ドメイン$.jp・・・メールの宛先アドレス

全体としては、以下のログ

Aug 20 12:00:00 localhost postfix/smtpd[2028]: connect from $送信元ホスト$.jp[XXX.XXX.XXX.XXX]
Aug 20 12:00:00 localhost postfix/trivial-rewrite[2009]: warning: do not list domain $送信先ホスト$.jp in BOTH mydestination and virtual_mailbox_domains
Aug 20 12:00:00 localhost postfix/smtpd[2028]: NOQUEUE: reject: RCPT from $送信元ホスト$.jp[XXX.XXX.XXX.XXX]: 550 5.1.1 : Recipient address rejected: User unknown in local recipient table; from= to= proto=ESMTP helo=
Aug 20 12:00:00 localhost postfix/smtpd[2028]: disconnect from $送信元ホスト$.jp[XXX.XXX.XXX.XXX]

はい、もう既に答えが出ていますね。
エラーが出たときはログをよく読みましょうという話です。

問題が発生した原因

main.cfの『mydestination』と、『virtualmailboxdomains』の両方にドメインを書いたらこうなります。

もうちょっと詳しく

main.cfに以下の記載。


mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain, $送信先ホスト$.jp, $送信先ホスト2$.jp, $送信先ホスト3$.jp ・・・・・

(省略)
virtual_mailbox_domains = /etc/postfix/virtualdomain

上記で定義した『virtualmailboxdomains』のパスに受信したいドメインを羅列します。

$送信先ホスト$.jp
$送信先ホスト2$.jp
$送信先ホスト3$.jp

こういう設定をした場合、エラーとしては『User unknown』のエラーが出ます。

もうちょっと気の利いたエラーメッセージだったらすぐ気づいたのになと思いました。

修正後の設定は以下の通り。

main.cfの中身
(※)デフォルトから変更した所だけ抜粋

myhostname = $送信先ホスト$.jp
mydomain = $myhostname
myorigin = $mydomain
inet_interfaces = all
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
home_mailbox = Maildir/
virtual_mailbox_domains = /etc/postfix/virtualdomain
virtual_mailbox_base = /var/spool/virtualdomain
virtual_mailbox_maps = hash:/etc/postfix/virtualdomainmailbox
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000
smtpd_sasl_type = dovecot
smtpd_sasl_auth_enable = yes
smtpd_sasl_path = private/auth
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination

virtualmailbox・・・の箇所はそれぞれファイルを自前で作ってください。
postmapコマンドでハッシュ化を忘れずに!

dovecotの設定は省略します。
(※)MySQLとか使っていない、簡素な環境なので。

簡単ですが、以上です。

  • このページの先頭へ

  • 東京本社
    〒105-0001東京都港区虎ノ門2-3-22 第一秋山ビル5F
    TEL:03-3591-8887 FAX:03-3591-8886
  • 大阪本社
    〒541-0041 大阪市中央区北浜2-6-11北浜エクセルビル5F
    TEL:06-6231-8887 FAX:06-6231-8897

  • 認証範囲はこちらをご覧ください。

Denet logo

クラウドサービス・データセンタ・高機能専有サーバ・共有サーバホスティングサービス 株式会社ディーネット
dot_bar