Dovecot userdb失败:内部失败

我试图通过在MySQL密码查询中添加'allow_nets'选项来保护Dovecot。 当我这样做时,我可以检查邮件就好了。

但是,发送到邮箱的任何邮件将失败:

Apr 1 09:38:59 localhost dovecot: deliver(brian@*****.com): userdb lookup(brian@*****.com) failed: Internal failure 

dovecot-mysql.conf包含:

 connect = host=localhost dbname=*** user=*** password=*** default_pass_scheme = CRYPT password_query = SELECT password, allow_nets FROM mailbox WHERE username = '%u' user_query = SELECT maildir, 5003 AS uid, 5003 AS gid FROM mailbox WHERE username = '%u' 

如果我从password_query中删除'allow_nets',一切正常。 在MySQL DB中,'allow_nets'字段包含:127.0.0.1,Postfix IP,我的IP地址。

任何想法我失踪?

编辑 :我升级到Dovecot 2.2.16,现在收到这个错误消息时,将“allow_nets”添加到password_query。

 dovecot: lda(brian@*****.com): Error: user brian@*****.com: Auth USER lookup failed 

鸽子configuration

 auth_mechanisms = plain digest-md5 login first_valid_gid = 5000 first_valid_uid = 5000 info_log_path = /dev/null listen = 127.0.0.1 mail_location = maildir:/opt/virtual/%d/%n mmap_disable = yes passdb { args = /dovecot/dovecot-mysql.conf driver = sql } protocols = imap pop3 service auth { unix_listener /var/spool/postfix/private/auth { mode = 0666 } unix_listener auth-master { group = virtual mode = 0600 user = virtual } } service imap-login { chroot = login inet_listener imaps { address = 12.34.56.78 } process_min_avail = 1 service_count = 0 user = dovecot vsz_limit = 64 M } service imap { drop_priv_before_exec = yes vsz_limit = 768 M } service pop3-login { chroot = login inet_listener pop3 { port = 0 } inet_listener pop3s { address = 12.34.56.78 } process_min_avail = 1 service_count = 0 user = dovecot vsz_limit = 64 M } service pop3 { drop_priv_before_exec = yes vsz_limit = 768 M } ssl_cert = </etc/ssl/cert.crt ssl_key = </etc/ssl/key.key userdb { args = uid=5003 gid=5003 home=/var/virtual/%d/%n driver = static } verbose_proctitle = yes protocol pop3 { pop3_uidl_format = %08Xu%08Xv } protocol lda { hostname = example.com postmaster_address = [email protected] sendmail_path = /usr/sbin/sendmail }