[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: DoveCot + Mysql





Le 5 janvier 2009 12:17, Johan Dindaine <jojolapin972@gmail.com> a écrit :


Le 5 janvier 2009 03:11, mouss <mouss@ml.netoyen.net> a écrit :

Johan Dindaine a écrit :
> Bonne et heureuse année 2009 a la liste. Que cette année soit aussi
> meilleurs que feu 2008 ;)
>
> Depuis ce matin, je me suis lancé dans l'installation de POSTFIX +
> POSTFIX Admin + DOVECOT en virtual user avec le support de Mysql.
>
> Entre postfix et Postfix Admin tout fonctionne parfaitement.
>
> Un extrait de mon fichier main.cf <http://main.cf>:
> virtual_alias_maps =
> proxy:mysql:/etc/postfix/sql/mysql_virtual_alias_maps.cf
> <http://mysql_virtual_alias_maps.cf>
> virtual_mailbox_domains =
> proxy:mysql:/etc/postfix/sql/mysql_virtual_domains_maps.cf
> <http://mysql_virtual_domains_maps.cf>
> virtual_mailbox_maps =
> proxy:mysql:/etc/postfix/sql/mysql_virtual_mailbox_maps.cf
> <http://mysql_virtual_mailbox_maps.cf>
> virtual_mailbox_base = /home/vmail
> virtual_gid_maps = static:106
> virtual_uid_maps = static:102
>
> Un extrait du fichier mysql_virtual_mailbox_maps.cf
> <http://mysql_virtual_mailbox_maps.cf>:
> user = emailAdmin
> password = password
> hosts = mysql.domain.com <http://mysql.domain.com>
> dbname = email
> query           = SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE
> username='%s' AND active = '1'
>
> Par une simple requette je peux verifier que mon utilisateur virtuel
> existe dans la base de données.
> mysql> SELECT CONCAT(domain,'/',maildir) FROM mailbox WHERE
> username='email@domain.com <mailto:email@domain.com>' AND active = '1';
> +------------------------------------+
> | CONCAT(domain,'/',maildir)         |
> +------------------------------------+
> | domain.com/user@domain.com/ <http://domain.com/user@domain.com/> |
> +------------------------------------+
>
> Et j'ai bien les email d'acheminé dans mon répertoire /home/vmail
>
> Du coté de Dovecot tout se gatte par contre, j'ai configuré dovecot.conf
> de la sorte de maniere a activer POP3 et IMAP:
> protocols = imap pop3
>
> info_log_path = /etc/dovecot/dovecot2.log
>
> log_timestamp = "%Y-%m-%d %H:%M:%S "
>
> auth default {
>   mechanisms = digest-md5
>   passdb sql {
>    args = /etc/dovecot/dovecot-mysql.conf
>   }
>   userdb sql {
>    args = /etc/dovecot/dovecot-mysql.conf
>   }
> }
>
> Et le fichier
> db_host = mysql.domain.com <http://mysql.domain.com>
> db_port = 3306
> db = email
> db_user = emailAdmin
> db_passwd = password
> db_client_flags = 0
> default_pass_scheme = MD5-CRYPT
> password_query = SELECT password FROM mailbox WHERE username = '%u'
> user_query = SELECT CONCAT(domain,'/',maildir) AS maildir, 102 AS uid,
> 106 AS gid FROM mailbox WHERE username = '%u'
>
> Et de la même manière les deux requetes ci-dessus peuvent etre vérifiées
> m'ont sorti de bon résultat donc la configuration est bonne. De plus les
> UID et GID sont corrects:
> # id postfix
> uid=102(postfix) gid=106(postfix) groups=106(postfix)
>
> Et pire encore lors que je vérifie la liste des ports ouverts le port
> IMAP et POP ne le sont pas.
> Comment faire pour obliger Dovecot a écouter sur ces ports? (en
> supposant que ce soit le problème)
>

s'il n'écoute pas, c'est qu'il y des erreurs, et qu'il a hurlé pour te
le faire savoir. regarde bien les logs.

Effectivement mon fichier de configuration de MySQL pour Dovecot n'etait pas bon, les logs me donnaient l'explication suivante:
dovecot: 2009-01-04 22:40:44 Error: Auth process died too early - shutting down
dovecot: 2009-01-04 22:40:44 Error: auth(default): Error in configuration file /etc/dovecot/dovecot-mysql.conf line 1: Unknown setting: db_host
dovecot: 2009-01-04 22:40:44 Error: child 30630 (auth) returned error 89
dovecot: 2009-01-04 22:40:44 Error: Temporary failure in creating login processes, slowing down for now

Je l'ai donc modifier comme ceci car il s'agissait d'options d'anciennes version de dovecot.
J'ai donc un mouveau fichier comme cela
$: vi /etc/dovecot/dovecot-mysql.conf
driver = mysql
connect = host=mysql.domain.com dbname=email user=emailAdmin password=password


default_pass_scheme = MD5-CRYPT
password_query = SELECT password FROM mailbox WHERE username = '%u'
user_query = SELECT CONCAT(domain,'/',maildir) AS maildir, 102 AS uid, 106 AS gid FROM mailbox WHERE username = '%u'
Et maintenant il se lance mais le client me demande mon mot de passe mais me sort une erreur disant que L'authentification MD5-Digest a ratée et qu'aucune de mes méthodes d'authentification ne semblent fonctionner sur le serveur IMAP.

>




Reply to: