Dovecot incapaz de executar consulta mysql

4

Tenho acompanhado os tutoriais do ISPMail em workaround.org (a versão 2.9 Wheezy) e até agora tudo tem funcionado bem. Quando cheguei à etapa "Testando a entrega de email", notei um erro sobre a consulta no log de saída de /var/log/mail.log.

May 14 06:48:59 mail postfix/pickup[17704]: EA4AD240A98: uid=0 from=<root>
May 14 06:48:59 mail postfix/cleanup[17776]: EA4AD240A98: message-id=<[email protected]>
May 14 06:48:59 mail postfix/qmgr[17706]: EA4AD240A98: from=<[email protected]>, size=429, nrcpt=1 (queue active)
May 14 06:49:00 mail dovecot: auth-worker(17782): mysql(127.0.0.1): Connected to database mailserver
May 14 06:49:00 mail dovecot: auth-worker(17782): Warning: mysql: Query failed, retrying: Table 'mailserver.users' doesn't exist
May 14 06:49:00 mail dovecot: auth-worker(17782): Error: sql([email protected]): User query failed: Table 'mailserver.users' doesn't exist (using built-in default user_query: SELECT home, uid, gid FROM users WHERE username = '%n' AND domain = '%d')
May 14 06:49:00 mail dovecot: lda([email protected]): msgid=<[email protected]>: saved mail to INBOX
May 14 06:49:00 mail postfix/pipe[17780]: EA4AD240A98: to=<[email protected]>, relay=dovecot, delay=0.09, delays=0.03/0.01/0/0.06, dsn=2.0.0, status=sent (delivered via dovecot service)
May 14 06:49:00 mail postfix/qmgr[17706]: EA4AD240A98: removed

Eu achei isto bastante interessante que ele não está achando o DB então eu voltei e verifiquei TODOS os arquivos que eu toquei que envolviam o DB (incluindo os arquivos postfix cf) e tudo está correto, então eu estou confuso neste ponto , mas estranhamente parece que o e-mail ainda chegou ao destino correto em /var/vmail/domain.com /.

Eu deveria estar preocupado com isso ou estou faltando alguma coisa aqui? Como é uma mensagem do dovecot, seria a consulta do dovecot-sql.conf.ext que estou incluindo aqui

driver = mysql
connect = host=127.0.0.1 dbname=mailserver user=blocked password=***REMOVED***
default_pass_scheme = PLAIN-MD5
password_query = SELECT email as user, password FROM virtual_users WHERE email='%u';
    
por NathanJ2012 14.05.2014 / 09:53

2 respostas

2

Como diz no seu mail.log, o valor de user_query não está definido. É por isso que o Dovecot está voltando à consulta padrão.

Abra seu arquivo de configuração /etc/dovecot/dovecot-sql.conf.ext e o valor para user_query provavelmente será comentado ou vazio. Preencha com uma consulta apropriada.

Como eu, se você estiver usando o mesmo UID e GID para todas as contas de email (digamos 5000), poderá fazer algo tão simples quanto

user_query = SELECT ('5000') as 'uid',('5000') as 'gid'

Apenas outra coisa que notei no seu arquivo de configuração. Melhor evitar usar o PLAIN-MD5 como seu default_pass_scheme. Melhor mudar para algo mais strong como o SHA512.

Espero que você encontre minha resposta útil. Felicidades!

    
por 07.06.2014 / 13:52
0

A Dovecot está procurando uma tabela chamada users enquanto você parece ter dados em virtual_users table:

Query failed, retrying: Table 'mailserver.users' doesn't exist

Renomeie a tabela ou configure o pombal para usar virtual_users table.

    
por 14.05.2014 / 10:10

Tags