ユーザ名・ホスト名に「-」が入っている場合のqmailの設定方法

バッドノウハウです。

ユーザ名に「-」が入っている場合

例えば、「foo-bar」というUNIXアカウントがあって、「foo-bar@example.com」宛にメールがあった場合、foo-barのホームディレクトリにある.qmailファイルに従って処理されると思いがちですが、違うんです。
qmailでは、「アカウント名-hoge」という拡張メールアドレスがあります。(拡張メールアドレスの詳しい解説)
メールログを見ると、

Jan 23 20:30:29 alpha qmail: 1485171029.781322 
starting delivery 158: msg 659726 to local foo-bar@example.com Jan 23 20:30:29 alpha qmail: 1485171029.781344 status: local 1/10 remote 0/20
Jan 23 20:30:29 alpha qmail: 1485171029.786233 delivery 158:
failure: Sorry,_no_mailbox_here_by_that_name._(#5.1.1)/

ユーザ「foo-bar」に配送されそうなものですが、違うんです。
ユーザ「foo」の拡張メールアドレス「foo-bar」として処理されます。
つまり、ユーザ「foo」のホームディレクトリにある「.qmail-bar」ファイルに従って処理されるのです。

これをどう解決するか。
バッドノウハウですが、ユーザ「foo」を新たに作って転送させます。

# useradd -s /bin/false foo
# passwd foo
(中略)
# cd /home/foo
# echo "./Maildir/" > .qmail-bar

そして、ユーザ「foo」でメールを読み書きします。

ホスト名に「-」があって、virtualdomainsでメールを受け取る場合

普通に考えると、

# echo "virtual-domain.example.com" >> rcpthosts
# echo "virtual-domain.example.com:virtual-domain" >> virtualdomains
# cd /home/virtual-domain
# echo "./Maildir/" > .qmail

だと思いますが、maillogを見ると、

Jan 23 20:30:29 alpha qmail: 1485171029.781322 
starting delivery 158: msg 659726 to
local virtual-domain-hostmaster@virtual-domain.example.com Jan 23 20:30:29 alpha qmail: 1485171029.781344 status: local 1/10 remote 0/20
Jan 23 20:30:29 alpha qmail: 1485171029.786233 delivery 158: failure:
Sorry,_no_mailbox_here_by_that_name._(#5.1.1)
/

と、配送に失敗しています。
解決方法は、こちらも別のユーザを作って配送させます。

# cd /var/qmail/control
# echo "virtual-domain.example.com" >> rcpthosts
# echo "virtual-domain.example.com:virtual" >> virtualdomains
# useradd -s /bin/false virtual # passwd virtual
(中略)
# cd /home/virtual
# echo "./Maildir/" > .qmail-domain-hostmaster

このように設定すれば、maillogは

Jan 28 20:15:36 alpha qmail: 1485602136.567592 starting delivery 35: 
msg 659701 to local virtual-domain-hostmaster@virtual-domain.example.com Jan 28 20:15:36 alpha qmail: 1485602136.567636 status: local 1/10 remote 0/20

と配送されることがわかります。

qmailのリスタート

# service qmail restart

CentOSなどはこのコマンドでリスタートできます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です