Sounds like you have a problem in /etc/dovecot/dovecot-sql.conf

Did you ever post it?  For virtual users, mine is:
driver = mysql

# Currently supported schemes include PLAIN, PLAIN-MD5, DIGEST-MD5, and CRYPT.
default_pass_scheme = PLAIN

# Database options
connect = host=/var/lib/mysql/mysql.sock dbname=sys_mail user=sys_mail 
password=hunter2

password_query = SELECT LOWER(CONCAT_WS('@',`User`,`Domain`)) AS `user` \
        , IF(`Password_Crypt` IS NOT NULL, 
CONCAT('{crypt}',`Password_Crypt`),`Password_Cleartext`) AS `password` \
        FROM `Virtual_User` \
        WHERE LOWER(`User`) = LOWER('%n') \
        AND LOWER(`Domain`) = LOWER('%d') \
        AND `Retrieve_Mail` = 'Yes'


# vmail = 399
user_query = SELECT 
CONCAT_WS('/','/home/vmail/domains',LOWER(`Domain`),LOWER(`User`)) AS `home` \
        , 'maildir:~/Maildir' AS `mail` \
        , 399 AS `uid` \
        , 399 AS `gid` \
        FROM `Virtual_User` \
        WHERE LOWER(`User`) = LOWER('%n') \
        AND LOWER(`Domain`) = LOWER('%d') \
        AND `Retrieve_Mail` = 'Yes'

The table:
MySQL (root@localhost) [sys_mail]> show columns from Virtual_User;
+--------------------+------------------+------+-----+---------+----------------+
| Field              | Type             | Null | Key | Default | Extra          
|
+--------------------+------------------+------+-----+---------+----------------+
| vu_id              | int(11) unsigned | NO   | PRI | NULL    | auto_increment 
|
| Name               | varchar(50)      | NO   |     | NULL    |                
|
| Domain             | varchar(128)     | NO   | MUL | NULL    |                
|
| User               | varchar(32)      | NO   | MUL | NULL    |                
|
| Password_Cleartext | varchar(128)     | NO   |     | NULL    |                
|
| Password_Crypt     | varchar(128)     | YES  |     | NULL    |                
|
| Retrieve_Mail      | enum('No','Yes') | NO   |     | Yes     |                
|
| Receive_Mail       | enum('No','Yes') | NO   |     | Yes     |                
|
| Accept_SMTP        | enum('No','Yes') | NO   |     | Yes     |                
|
| uid                | int(11) unsigned | NO   |     | 399     |                
|
| gid                | int(11) unsigned | NO   |     | 399     |                
|
| homedir            | varchar(75)      | NO   |     | NULL    |                
|
| Maildir            | varchar(32)      | NO   |     | Maildir |                
|
| quota              | tinytext         | NO   |     | NULL    |                
|
| imap               | enum('Y','N')    | NO   |     | N       |                
|
| virus_check        | enum('Y','N')    | NO   |     | Y       |                
|
| spam_check         | enum('Y','N')    | NO   |     | Y       |                
|
+--------------------+------------------+------+-----+---------+----------------+


Dovecot can be made to log the MySQL transaction.  I did that a long long time 
ago but don't remember how.

Virtual user db:
# ------------------------------------------------------------------------------
# ----------------------------------- MySQL ------------------------------------
# ------------------------------------------------------------------------------
first_valid_uid         = 399
passdb {
  driver = sql
  args = /etc/dovecot/dovecot-mysql.conf
}

userdb {
  driver = sql
  args = /etc/dovecot/dovecot-mysql.conf
}

Hope this helps,
Bill

Reply via email to