环境信息- 宝塔 Linux 面板 V13.0.0
- 宝塔邮局管理器版本:6.7
- 系统:Debian12
问题描述升级宝塔面板后,通过:
宝塔面板 → 邮局 → 添加邮箱创建的新邮箱无法登录。
现象:
- Roundcube 登录失败
- 邮箱客户端登录失败
- 提示密码错误
旧邮箱可以正常使用。
排查过程检查 Dovecot 配置:
/etc/dovecot/dovecot-sql.conf.ext发现:
driver = sqlitedefault_pass_scheme = MD5-CRYPTDovecot 当前使用:
MD5-CRYPT验证密码。
查询邮箱数据库后发现:
部分正常邮箱密码格式:
$1$xxxxxxxx$xxxxxxxx属于:
MD5-CRYPT可以正常登录。
但是新创建邮箱密码格式:
$apr1$xxxxxxxx$xxxxxxxx属于:
APR1导致 Dovecot 无法验证。
代码定位发现宝塔邮局密码生成逻辑:
文件:
/www/server/panel/class/mailModel/mainModel.py函数:
def _generate_crypt_passwd(self, password):当前逻辑:
from mod.base.simple_crypt import cryptreturn crypt(password, password)该方法生成:
$apr1$格式。
但是 Dovecot 配置:
default_pass_scheme = MD5-CRYPT要求:
$1$格式。
两者不兼容。
复现结果当前:
Dovecot:MD5-CRYPT宝塔新增邮箱:APR1 ($apr1$)导致:
密码正确↓Hash 不匹配↓登录失败
建议修复方案建议宝塔邮局统一密码生成方式。
例如:
改为:
import cryptreturn crypt.crypt(password, crypt.mksalt(crypt.METHOD_MD5))或者统一使用:
doveadm pw -s MD5-CRYPT生成密码。
补充说明该问题只影响升级后新创建邮箱。
已有使用 MD5-CRYPT 的邮箱不受影响。
希望官方确认一下新版邮局密码生成逻辑是否修改,是否需要同步调整 Dovecot 的 default_pass_scheme。
谢谢。
最后我想请问,若是卸载邮局重装会不会问题依旧!
|
|