На почтовом сервере, который я пытался настроить, я настроил postfix для доставки почты виртуальному пользователю. user1
(с адресом электронной почты user1@example.com
) в файл /var/mail/vhosts/user1@example.com/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 | ... | user1@example.com | user1@example.com/mail |
+----+----------+-------------------+------------------------+
Теперь для голубятни я установил:
mail_location = mbox:/var/mail/vhosts:INBOX=/var/mail/vhosts/%u/mail
и:
password_query = SELECT email as user, password FROM virtusers WHERE email='%u';
Я явно взломал это, чтобы работать, но когда я получаю доступ к squirrelmail и отправляю / удаляю электронные письма, папки Drafts
, 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/user1@example.com/
?
Разве у вас не должно быть
mail_location = mbox:/var/mail/vhosts/%u:INBOX=/var/mail/vhosts/%u/mail
т.е. у вас в настоящее время нет имени пользователя %u
переменная в mbox
путь, только в INBOX
дорожка.