Назад | Перейти на главную страницу

Клиент попытался получить доступ к несуществующему пространству имен (Dovecot и Squirrelmail)

Я занимаюсь этим несколько дней и, несмотря на бесчисленные поиски, так и не смог найти решения.

Я размещаю несколько доменов в vps, и вся электронная почта пересылается на адреса Gmail, что работает, но я хотел бы настроить свою собственную электронную почту, поэтому мне больше не нужно полагаться на Gmail.

Postfix и Dovecot были установлены согласно инструкции здесь: Электронная почта с Postfix, Dovecot и MariaDB на CentOS 7

Полагая, что, поскольку Squirrelmail является самым простым почтовым клиентом, я решил начать с него. Мне потребовалось несколько дней, чтобы заставить его получать и отправлять электронную почту (мне пришлось отключить доступ https, по крайней мере, чтобы загрузить страницу - с этим разберемся позже, и TLS также отключен - в этом нет необходимости, если он работает на том же сервере, что и все остальное).

Однако правильное отображение страницы - это совсем другая история. На левой панели, где должен отображаться список папок, я получаю сообщение «ОШИБКА: не удалось выполнить запрос. Запрос: СОЗДАТЬ« Отправлено ». Указанная причина: клиент пытался получить доступ к несуществующему пространству имен. (Имя почтового ящика, вероятно, должно иметь префикс: INBOX .) ". На основании всего, что я прочитал (а этого было много), я верить что проблема в голубятне, но я могу ошибаться.

Если кто-то может указать, что не так с моей конфигурацией, я был бы более чем благодарен.

Ниже приведены все файлы конфигурации, о которых я мог подумать: (конфиденциальная информация заменена на ####)

/etc/dovecot/dovecot.conf:

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 }

/etc/dovecot/conf.d/10-mail.conf: (комментарии удалены для простоты)

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