Password
Roundcube 在登錄時不為使用者輸入密碼
我在 docker 容器中有圓形立方體和 docker-mailserver。我已經設法通過圓形密碼外掛更改密碼。我創建了“郵箱”表並添加了兩列:“使用者名”和“密碼”。現在這正在工作,所有使用者都可以更改他們的密碼。
但 roundcube 仍然通過來自 /config/postfix-accounts.cf 的密碼登錄使用者,而不是來自數據庫。
如何讓roundcube從數據庫(MySQL)中獲取密碼?
當然,IMAP 和 POP3 也應該從數據庫中獲取密碼,而不是從給定文件中獲取密碼。
Roundcube 1.5.2,docker 郵件伺服器 10.4.0。
好的,所以涉及很多工作+大量研究:
- 你必須有單獨的 MySQL 容器和使用它的容器
- docker-mailserver 必須使用這些行而不是
image
:build: context: . dockerfile: Dockerfile
- Dockerfile 必須是:
FROM docker.io/mailserver/docker-mailserver:latest RUN apt-get update && apt-get install -y dovecot-mysql
- 如您所見,它必須
docker-compose
與--build
參數一起執行dovecot-mysql
必須按原樣安裝用於從 MySQL 數據庫獲取密碼的外掛(必須在配置文件中為圓形立方體啟用此外掛 - 從圓形立方體更改數據庫中的密碼)- 在
etc/dovecot/10-auth.conf
你需要!include auth-passwdfile.inc
評論#
- 在同一個文件中取消註釋
#!include auth-sql.conf.ext
- 在文件
10-ssl.conf
製作行ssl=yes
userdb
這也可能需要- 在您的容器數據庫中創建一個
mailbox
包含列的表username
,password
- 添加至少一個帶密碼的使用者
$1$...
- 加密dovecot.cf
文件必須有ssl=yes
,您可能要添加disable_plaintext_auth=yes
- 有
/etc/dovecot
作為卷(從容器內獲取文件)- 在
/etc/dovecot/dovecot-sql.conf.ext
有:driver = mysql connect = host=mail_mysql_cont dbname=db user=username password=root_passwd_for_db password_query = \ SELECT username AS user, password \ FROM mailbox WHERE username = '%u' user_query = \ SELECT '/tmp' AS home, 9999 AS uid, 9999 AS gid;
- 在
/etc/dovecot/auth-sql.conf.ext
有:passdb { driver = sql args = /etc/dovecot/dovecot-sql.conf.ext }
我稍後會更新答案,因為我會進一步解決這個問題。
編輯:
要在 Roundcube 中更改密碼,您需要附加 MySQL 數據庫並
mailbox
創建至少包含列username
和password
.