Это походит на одну из тех ситуаций, где Вы делаете совершенно разумный выбор конфигурации (отключите уведомления о воздушном шаре для улучшения пользовательского опыта). Затем что-то подходит, который конфликтует с тем решением. В той точке можно уклониться от компромисса (и обычно заканчивать с большой путаницей или чем-то нелепо сложным относительно фактического размера проблемы). С другой стороны, отступите свое изменение. В большинстве случаев я считаю, лучше брать полезный опыт, и назад из более раннего решения.
tl; уведомления о воздушном шаре доктора Re-enable.
Согласно эта ссылка Вы можете использовать «несколько переменных в настройке mail_location»
%u: Full username.
%n: User part in user@domain, same as %u if there's no domain.
%d: Domain part in user@domain, empty if there's no domain.
например.
mail_location = maildir:/home/%n/%d/%n/Maildir
должен указывать на / home / user / domain / user / Maildir
Учтите то, что вы просите на мгновение. Вы хотите включить домашний каталог пользователя в mail_location
. На первый взгляд это кажется разумным запросом, но вы должны спросить - откуда Dovecot знает домашний каталог пользователя?
Системные пользователи хранятся в / etc / passwd - этот файл содержит
username:password:uid:gid:comment:home:shell
(Примечание: вместо пароля , у вас может быть x
с паролем, хранящимся в / etc / shadow; или *
для деактивации учетной записи; комментарий на самом деле является ' gecos field ')
Если Dovecot прочитает этот файл - он предоставляется вместе с домашним каталогом пользователя - как только он получит эту информацию, он сможет использовать ее где-нибудь в другом месте (то есть сможет использовать ' ~ / для обозначения домашнего каталога и установит
% h` на то же самое).
Если, однако, вы используете виртуальных пользователей, а не пользователей системы, одна из фундаментальных идей заключается в том, что не каждый виртуальный пользователь должен быть системным пользователем. В этом случае Dovecot не имеет возможности узнать, является ли виртуальный пользователь с тем же именем, что и системный пользователь, на самом деле тем же пользователем или нет (он также не может использовать UID, поскольку можно сопоставить несколько виртуальных пользователей с тот же UID). Он не будет принимать ничего, кроме того, что указано в вашей userdb.
Userdb может предоставить Dovecot следующую информацию:
В вашем конфигурации, вы используете файл passwd - то есть файл с тем же форматом, что и системный файл passwd, но который вы настроили для этой цели (то есть это не системный файл passwd). Dovecot принимает следующий формат файла passwd (и игнорирует поля gecos и оболочки):
user:password:uid:gid:(gecos):home:(shell):extra_fields
Вы можете переопределить определенные значения по умолчанию для каждого пользователя, указав (разделенный пробелами) key = значение
дополнительные поля (с ключами с префиксом userdb_
в большинстве случаев). Например, userdb_mail = Maildir: