Я занимаюсь этим несколько дней и, несмотря на бесчисленные поиски, так и не смог найти решения.
Я размещаю несколько доменов в vps, и вся электронная почта пересылается на адреса Gmail, что работает, но я хотел бы настроить свою собственную электронную почту, поэтому мне больше не нужно полагаться на Gmail.
Postfix и Dovecot были установлены согласно инструкции здесь: Электронная почта с Postfix, Dovecot и MariaDB на CentOS 7
Полагая, что, поскольку Squirrelmail является самым простым почтовым клиентом, я решил начать с него. Мне потребовалось несколько дней, чтобы заставить его получать и отправлять электронную почту (мне пришлось отключить доступ https, по крайней мере, чтобы загрузить страницу - с этим разберемся позже, и TLS также отключен - в этом нет необходимости, если он работает на том же сервере, что и все остальное).
Однако правильное отображение страницы - это совсем другая история. На левой панели, где должен отображаться список папок, я получаю сообщение «ОШИБКА: не удалось выполнить запрос. Запрос: СОЗДАТЬ« Отправлено ». Указанная причина: клиент пытался получить доступ к несуществующему пространству имен. (Имя почтового ящика, вероятно, должно иметь префикс: INBOX .) ". На основании всего, что я прочитал (а этого было много), я верить что проблема в голубятне, но я могу ошибаться.
Если кто-то может указать, что не так с моей конфигурацией, я был бы более чем благодарен.
Ниже приведены все файлы конфигурации, о которых я мог подумать: (конфиденциальная информация заменена на ####)
protocols = imap pop3 log_timestamp = "%Y-%m-%d %H:%M:%S " mail_location = maildir:/home/vmail/%d/%n/Maildir
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem ssl_key = </etc/pki/dovecot/private/dovecot.pem
namespace {
type = private
separator = .
prefix = INBOX.
inbox = yes }
service auth {
unix_listener auth-master {
mode = 0600
user = vmail
}
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
user = root }
service auth-worker {
user = root }
protocol lda {
log_path = /home/vmail/dovecot-deliver.log
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = postmaster@##########.com }
protocol pop3 { pop3_uidl_format = %08Xu%08Xv }
passdb {
driver = sql
args = /etc/dovecot/dovecot-sql.conf.ext }
userdb {
driver = static
args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes }
namespace inbox {
inbox = yes
list = yes
}
РЕДАКТИРОВАТЬ - По запросу Йенса, вот результат "doveconf -n:"
После удаления объявления пространства имен из dovecote.conf Squirrelmail работает.
# 2.2.10: /etc/dovecot/dovecot.conf
# OS: Linux 4.5.0-x86_64-linode65 x86_64 CentOS Linux release 7.4.1708 (Core) ext4
log_timestamp = "%Y-%m-%d %H:%M:%S "
mail_location = maildir:/home/vmail/%d/%n/Maildir
passdb {
args = /etc/dovecot/dovecot-sql.conf.ext
driver = sql
}
protocols = imap pop3
service auth-worker {
user = root
}
service auth {
unix_listener /var/spool/postfix/private/auth {
group = postfix
mode = 0666
user = postfix
}
unix_listener auth-master {
mode = 0600
user = vmail
}
user = root
}
ssl_cert = </etc/pki/dovecot/certs/dovecot.pem
ssl_key = </etc/pki/dovecot/private/dovecot.pem
userdb {
args = uid=5000 gid=5000 home=/home/vmail/%d/%n allow_all_users=yes
driver = static
}
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
log_path = /home/vmail/dovecot-deliver.log
postmaster_address = postmaster@#######.com
}
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
Спасибо за помощь, Йенс!
После удаления повторяющегося определения пространства имен (один раз в /etc/dovecot/dovecot.conf, а затем снова в /etc/dovecot/conf.d/10-mail.conf) и оставив только одно из 10-mail.conf, Squirrelmail работает как обычно.
Когда пространство имен объявлено в обоих файлах, «dovecot -n» возвращает то же, что показано в моем первом сообщении (выше), за исключением того, что раздел пространства имен выглядит так:
namespace {
inbox = yes
location =
prefix = INBOX.
separator = .
type = private
}
С объявлением пространства имен в обоих файлах конфигурации Thunderbird и Squirrelmail жалуются на одно и то же сообщение об ошибке. Roundcube, однако, полностью счастлив.
«dovecot -n» в любом случае не сообщает о проблеме.
Alex