MySQLを使用してドメイン名、ユーザー、エイリアスを定義するPostfix(およびDovecot)サーバーを実行しています。これはすべて正常に動作していますが、ここで、既に一部のユーザーが定義されているドメインにキャッチオールを追加したいと思います。 virtual_usersテーブルにユーザーを追加しました。ユーザーを接続してメールを送信することはできますが、送信されるすべてのメールはキャッチオールによってキャプチャされます。これを解決する方法はありますか?
関連する構成ファイルと詳細:
/etc/postfix/main.cf:
virtual_transport = lmtp:unix:private/dovecot-lmtp
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual-mailbox-domains.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual-mailbox-maps.cf
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual-alias-maps.cf
local_recipient_maps = $virtual_mailbox_maps
mysql仮想ユーザーテーブル:
+----+-----------+--------------+------------------------+
| id | domain_id | password | email |
+----+-----------+--------------+------------------------+
| 2 | 1 | passwordhash | [email protected] |
+----+-----------+--------------+------------------------+
mysql仮想エイリアステーブル:
+----+-----------+------------------------+-------------------------------+
| id | domain_id | source | destination |
+----+-----------+------------------------+-------------------------------+
| 2 | 1 | @example.com | [email protected] |
+----+-----------+------------------------+-------------------------------+
デフォルトでは、接尾辞は常にvirtual_alias_maps
firstで検索します。したがって、常に別のマップの別のエントリをオーバーライドします(例:alias_maps
およびvirtual_mailbox_maps
)。したがって、virtual_mailbox_maps
で定義されているメールアドレスを除外する必要があります。
それを除外するには、main.cfでvirtual_alias_maps
の新しいmysqlマップを作成する必要があります。
virtual_alias_maps = mysql:/etc/postfix/mailbox.cf, mysql:/etc/postfix/mysql-virtual-alias-maps.cf
次に、mailbox.cfでクエリを定義します
SELECT email from VIRTUALUSERTABLE WHERE email = %s
それでおしまい。クエリが必要なので、result = key lookupです。これが発生した場合、Postfixはメールをエイリアスでキャッチオールユーザーに送信しません。
参照: 後置チュートリアル
私のシステムで同様の問題を検索していることがわかりました。同じドメインのメールボックスへの転送をバイパスするため、mailbox.cfを追加しても機能しませんでした。キャッチオールを配置した同じドメインのメールボックスに転送する必要がある場合は、送信元アドレスと宛先アドレスを仮想エイリアステーブルに追加する必要があります。
たとえば、上記の質問で[email protected]を[email protected]に転送した場合、admin @ example.comにはメールが表示されません。 [email protected]にのみ到着します
「より具体的なエイリアスは、一般的なキャッチオールエイリアスよりも優先されます。」参照: https://workaround.org/book/export/html/376
同じドメインに対して、mailbox.cfを追加するのではなく、このような追加の転送をセットアップします。
+----+-----------+------------------------+-------------------------------+
| id | domain_id | source | destination |
+----+-----------+------------------------+-------------------------------+
| 1 | 1 | [email protected] | [email protected] |
| 2 | 1 | [email protected] | [email protected] |
+----+-----------+------------------------+-------------------------------+