- iRedMail-0.9.0 及后续新版本:
SSHA512
- iRedMail-0.8.7 及更早版本:
MD5
所有的邮箱用户账户存放于 SQL 表 vmail.mailbox
中,用户密码则存放于 mailbox.password
字段中。进入MySQL并切换到vmail
select username,password from mailbox;
会发现由{SSHA512}打头的密码,这个密码无法破译,只能选择更新覆盖掉,我选择的事直接改成明文密码
- 要保存明文密码,需要加上
{PLAIN}
前缀:
-
sql> USE vmail;
-
sql> UPDATE mailbox SET password='{PLAIN}123456' WHERE username='xx@xx';
(注意:你需要将 xx@xx
替换为实际的邮件地址)
然后你的密码就修改成功啦!就可以再管理页面登录了
via.https://blog.csdn.net/hapniss/article/details/131381797
另一个重置密码脚本参考:
#!/usr/bin/env bash
# 检查输入参数的数量是否为2,如果不是,打印错误信息并退出脚本
if [ X"$#" != X'2' ]; then
echo "参数错误"
echo "使用方法: bash ./mailboxpw.sh 用户@域名 密码"
exit 255
fi# 读取输入参数,\$1是邮箱地址,\$2是新密码
mailbox="\$1"
password="\$2"# 使用doveadm pw命令加密密码,-s 'ssha512'指定使用SSHA-512算法,-p ${password}指定要哈希的密码
# 将加密后的密码保存在CRYPT_PASSWD变量中
CRYPT_PASSWD="$(doveadm pw -s 'ssha512' -p ${password})"# 打印SQL更新语句,用于更新邮箱的密码
# ${mailbox,,}将邮箱地址转换为小写
cat <<EOF
UPDATE mailbox SET password = '${CRYPT_PASSWD}' WHERE username = '${mailbox,,}';
EOF# 退出脚本,返回状态码0表示成功
exit 0
https://forum.iredmail.org/topic20079-reset-password-from-cli.html