我正在将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([email protected],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 ('[email protected]', '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 - dovecot passdb中的密码无效:无效的MD5-CRYPT或PLAIN-MD5密码,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28463800/

10-11 01:42