web-dev-qa-db-ja.com

クライアントが存在しない名前空間(DovecotおよびSquirrelmail)にアクセスしようとしました

私はこれに数日間いて、数え切れないほどの検索にもかかわらず、解決策を見つけることができませんでした。

私はvpsでいくつかのドメインをホストし、すべてのメールをGmailアドレスに転送していますが、これは機能しますが、独自のメールを設定したいので、Gmailに依存する必要はありません。

PostfixとDovecotはここの指示に従ってインストールされました: CentOS 7上のPostfix、Dovecot、MariaDBを含むメール

Squirrelmailは世の中で最も基本的な電子メールクライアントであるため、私はそれから始めることにしました。メールを送受信するのに数日かかりました(少なくともページをロードするにはhttpsアクセスを無効にする必要がありました-これは後で処理し、TLSも無効になります-実行する場合はこれは必要ありません他のすべてと同じサーバー内)。

ただし、ページを正しく表示することは、まったく別の話のようです。フォルダリストが表示されるはずの左側のパネルに、「エラー:リクエストを完了できませんでした。クエリ:CREATE "Sent"理由:クライアントが存在しない名前空間にアクセスしようとしました(メールボックス名の前に: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
}

EDIT-Jensの要求に従って、「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
}
1
alex wieder

助けてくれてありがとう、イェンス!

重複する名前空間定義を削除し(1回は/etc/dovecot/dovecot.confに、次にもう一度/etc/dovecot/conf.d/10-mail.confに)、10-mail.confから1つだけを残した後、Squirrelmailは機能します通常は。

名前空間が両方のファイルで宣言されている場合、「dovecot -n」は、名前空間セクションが次のようになることを除いて、最初の投稿(上記)に示されているものと同じものを返します。

namespace {
  inbox = yes
  location = 
  prefix = INBOX.
  separator = .
  type = private
}

両方の設定ファイルで名前空間を宣言すると、ThunderbirdとSquirrelmailは同じエラーメッセージで文句を言います。ただし、Roundcubeは完全に満足しています。

「dovecot-n」はどちらの方法でも問題を報告しません。

アレックス

0
alex wieder