
私が設定しようとしていたメール サーバーで、仮想ユーザーuser1
(電子メール アドレス[email protected]
) へのメールをファイル に配信するように postfix を設定しました。これは、次のように設定して行いました。/var/mail/vhosts/[email protected]/mail
# /etc/postfix/main.cfg
virtual_mailbox_maps = mysql:/etc/postfix/virtmailmaps.conf
そして:
# /etc/postfix/virtmailmaps.conf
# ...
query = SELECT destination FROM virtusers WHERE email='%s'
mysql データベースには次のvirtusers
テーブルがあります:
+----+----------+-------------------+------------------------+
| id | password | email | destination |
+----+----------+-------------------+------------------------+
| 1 | ... | [email protected] | [email protected]/mail |
+----+----------+-------------------+------------------------+
さて、dovecot では次のように設定しました:
mail_location = mbox:/var/mail/vhosts:INBOX=/var/mail/vhosts/%u/mail
そして:
password_query = SELECT email as user, password FROM virtusers WHERE email='%u';
Drafts
これは明らかに動作するようにハッキングしたものですが、squirrelmail にアクセスして電子メールを送信/削除すると、、およびフォルダーTrash
がSent
作成され/var/mail/vhosts
、その内容がすべての仮想ユーザー間で共有されます。
どうやら、ホーム オプションを正しく設定していないようですが、設定ファイル オプション (postfix、dovecot、squirrelmail) が何をしているのか、また、それがどのように連携しているのかがよくわかりません。たとえば、すでに設定しています。
# /etc/dovecot/conf.d/auth-sql.conf.ext
userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/vhosts/%u
}
Drafts
、Trash
およびSent
ディレクトリが各ユーザーのホーム ディレクトリ内に存在するようにこれを修正するにはどうすればよいですか?/var/mail/vhosts/[email protected]/
答え1
あなたはそうすべきではないでしょうか
mail_location = mbox:/var/mail/vhosts/%u:INBOX=/var/mail/vhosts/%u/mail
%u
つまり、現在パス内にユーザー名変数はなくmbox
、パス内にのみ存在しますINBOX
。