passdb 中的 dovecot 密码无效:不是有效的 MD5-CRYPT 或 PLAIN-MD5 密码
dovecot Invalid password in passdb: Not a valid MD5-CRYPT or PLAIN-MD5 password
我正在将 imap-courier 迁移到 dovecot,我使用 openbsd+postfix+imap-courier,现在我正在尝试 运行 openbsd+opensmtpd+dovecot。
一开始它有点受创,但它可以正确地运行 OpenSMTPD。
现在我已经配置好dovecot,希望你的后端授权是和imap-courier一样的数据库。
In /var/log/maillog receipt the following error
auth-worker(2915): Error: sql(user@domain.tld,199.254.238.134): `Invalid password in passdb: Not a valid MD5-CRYPT or PLAIN-MD5 password`
我的/etc/dovecot/dovecot-sql.conf.ext
password_query = \
SELECT login, password \
FROM users WHERE login = '%u'
我的数据库MySQL也要启动
mysql> CREATE DATABASE mail;
Query OK, 1 row affected (0.01 sec)
mysql> use mail
Database changed
mysql> CREATE TABLE domains (
-> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
-> domain VARCHAR(255) NOT NULL UNIQUE);
Query OK, 0 rows affected (0.02 sec)
mysql> CREATE TABLE users (
-> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
-> login VARCHAR(255) NOT NULL UNIQUE,
-> name VARCHAR(255) NOT NULL,
-> password CHAR(13) NOT NULL,
-> uid SMALLINT NOT NULL DEFAULT 2000,
-> gid SMALLINT NOT NULL DEFAULT 2000,
-> home VARCHAR(255) NOT NULL DEFAULT '/var/vmail',
-> maildir VARCHAR(255) NOT NULL,
-> quota VARCHAR(10) NOT NULL DEFAULT '10000000S');
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE alias_maps (
-> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
-> account VARCHAR(255) NOT NULL UNIQUE,
-> alias VARCHAR(255) NOT NULL);
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT ON mail.* to 'vmail'@'localhost' IDENTIFIED BY 'vmail';
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
过去在数据库中插入数据的错误不适合我,我这样做:
mysql> INSERT INTO users (login, name, password, maildir)
-> VALUES ('name@domain.tld', 'name lastname', ENCRYPT('pass'),
-> 'domain.tld/name/');
对我有帮助的好评
感谢大家
使用CRYPT加密密码时,必须在dovecot中放入以下内容-sql.conf.ext
default_pass_scheme = CRYPT
我希望这可以帮助更多的人,除了离开你,因为我做了我的查询:
password_query = \
SELECT password \
FROM users WHERE login = '%u'
应该是:
mysql> INSERT INTO users (login, name, password, maildir)
-> VALUES ('name@domain.tld', 'name lastname', **MD5**('pass'),
-> 'domain.tld/name/');
我正在将 imap-courier 迁移到 dovecot,我使用 openbsd+postfix+imap-courier,现在我正在尝试 运行 openbsd+opensmtpd+dovecot。
一开始它有点受创,但它可以正确地运行 OpenSMTPD。
现在我已经配置好dovecot,希望你的后端授权是和imap-courier一样的数据库。
In /var/log/maillog receipt the following error
auth-worker(2915): Error: sql(user@domain.tld,199.254.238.134): `Invalid password in passdb: Not a valid MD5-CRYPT or PLAIN-MD5 password`
我的/etc/dovecot/dovecot-sql.conf.ext
password_query = \
SELECT login, password \
FROM users WHERE login = '%u'
我的数据库MySQL也要启动
mysql> CREATE DATABASE mail;
Query OK, 1 row affected (0.01 sec)
mysql> use mail
Database changed
mysql> CREATE TABLE domains (
-> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
-> domain VARCHAR(255) NOT NULL UNIQUE);
Query OK, 0 rows affected (0.02 sec)
mysql> CREATE TABLE users (
-> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
-> login VARCHAR(255) NOT NULL UNIQUE,
-> name VARCHAR(255) NOT NULL,
-> password CHAR(13) NOT NULL,
-> uid SMALLINT NOT NULL DEFAULT 2000,
-> gid SMALLINT NOT NULL DEFAULT 2000,
-> home VARCHAR(255) NOT NULL DEFAULT '/var/vmail',
-> maildir VARCHAR(255) NOT NULL,
-> quota VARCHAR(10) NOT NULL DEFAULT '10000000S');
Query OK, 0 rows affected (0.01 sec)
mysql> CREATE TABLE alias_maps (
-> id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
-> account VARCHAR(255) NOT NULL UNIQUE,
-> alias VARCHAR(255) NOT NULL);
Query OK, 0 rows affected (0.00 sec)
mysql> GRANT SELECT ON mail.* to 'vmail'@'localhost' IDENTIFIED BY 'vmail';
Query OK, 0 rows affected (0.01 sec)
mysql> FLUSH PRIVILEGES;
过去在数据库中插入数据的错误不适合我,我这样做:
mysql> INSERT INTO users (login, name, password, maildir)
-> VALUES ('name@domain.tld', 'name lastname', ENCRYPT('pass'),
-> 'domain.tld/name/');
对我有帮助的好评
感谢大家
使用CRYPT加密密码时,必须在dovecot中放入以下内容-sql.conf.ext
default_pass_scheme = CRYPT
我希望这可以帮助更多的人,除了离开你,因为我做了我的查询:
password_query = \
SELECT password \
FROM users WHERE login = '%u'
应该是:
mysql> INSERT INTO users (login, name, password, maildir)
-> VALUES ('name@domain.tld', 'name lastname', **MD5**('pass'),
-> 'domain.tld/name/');