在我一直尝试设置的邮件服务器上,我已将 postfix 配置为将邮件发送给虚拟用户user1
(使用电子邮件地址[email protected]
) 到文件。我通过设置执行以下操作:/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 |
+----+----------+-------------------+------------------------+
现在,对于鸽舍我已经设置了:
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
并且其内容将在所有虚拟用户之间共享。
因此,似乎我没有正确设置某些 home 选项,但我不太清楚配置文件选项的作用(在 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
路径中。