転送設定が解決した
やっと仕組みを理解した。
- dbmail-users -a username
- dbmail_usersとdbmail_mailboxesにデータを作成する
- dbmail-users -c username -s alias
- dbmail_aliasesにdbmail_mailboxesに対応するデータを作成する
- dbmail-users -x username -t forward
- dbmail_aliasesに転送メールアドレスを追加する
で、次に配送手順。
- ユーザ名をdbmail_aliasesテーブルから検索する
- データが存在する
- 配送(複数の場合は、その全てに配送)して終了
- データが存在する
- dbmail_usersテーブルを検索する
- データが存在する
- 配送(一ユーザ)
- データが存在する
ゆえに
dbmail-users -a username dbmail-users -x username -t forward
とやっただけでは dbmail_aliases テーブルのforwardが優先されるので、ローカルには配送されない。
そこで
dbmail-users -a username -s username dbmail-users -x username -t forward
のようにユーザ名と同じエイリアスデータを作成する。エイリアステーブルの検索結果が複数あった場合はその全てに配送されるので、これでローカルと転送先の両方に配送できる。
エイリアスのデータは
alias | deliver_to -----------+------------ aliasname | 1 forward | othername
のように格納されているので、エイリアス後に転送は行われない。上記の1というのはmailboxのidで直接そこに格納される。